Команды управления#

Примечание

Запуск команд управления от имени пользователя, отличного от того, под которым работает ваш веб-сервер, может привести к тому, что права доступа на файлы будут выставлены неверно. Для получения более подробной информации обратитесь к разделу Права доступа к файлам.

Основные команды управления доступны из скрипта ./manage.py в исходниках Django, или их расширенный набор из скрипта weblate, устанавливаемом поверх Weblate.

Вызов команд управления#

Как упоминалось ранее, вызов команд зависит от того, как вы установили Weblate.

При использовании для Weblate’а виртуального окружения вы можете либо указать полный путь к команде weblate, либо перед вызовом активировать виртуальное окружение:

# Direct invocation
~/weblate-env/bin/weblate

# Activating virtualenv adds it to search path
. ~/weblate-env/bin/activate
weblate

Если вы напрямую используете исходный код (либо из tar-архива, либо из Git’а), то скрипт управления ./manage.py доступен из исходников Weblate’а. Для его запуска выполните следующую команду:

python ./manage.py list_versions

Если вы установили Weblate с помощью программы установки pip или скрипта ./setup.py, команда weblate устанавливается в каталог (или через переменную PATH виртуального окружения), откуда вы можете использовать её для управления Weblate:

weblate list_versions

В случае использования образа Docker’а скрипт устанавливается так же, как и выше, и вы можете запустить его с помощью команды docker exec:

docker exec --user weblate <container> weblate list_versions

Для docker-compose-plugin процесс аналогичен, вам просто нужно использовать docker compose exec:

docker compose exec --user weblate weblate weblate list_versions

В случае, если вам нужно передать ему файл, вы можете временно добавить том:

docker compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json

Для команды docker-compose процесс аналогичен, достаточно использовать вызов docker-compose exec:

docker-compose exec --user weblate weblate weblate list_versions

В случае, если вам нужно передать ему файл, вы можете временно добавить том:

docker-compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json

add_suggestions#

weblate add_suggestions <project> <component> <language> <file>#

Импортирует перевод из файла, чтобы использовать его как предложение для данного перевода. Команда пропускает дубликаты перевода; добавляются только отличающиеся.

--author USER@EXAMPLE.COM#

Электронная почта автора предложений. До выполнения импорта следует убедиться, что этот пользователь существует (при необходимости его можно создать через интерфейс администратора).

Пример:

weblate --author michal@cihar.com add_suggestions weblate application cs /tmp/suggestions-cs.po

авто_перевести#

weblate auto_translate <project> <component> <language>#

Изменено в версии 4.6: Добавлен параметр для режима перевода.

Выполняет автоматический перевод на основе переводов других компонентов.

--source PROJECT/COMPONENT#

Задает компонент, используемый в качестве доступных для перевода исходных строк. Если не задан, то используются все компоненты проекта.

--user USERNAME#

Задаёт имя пользователя, указываемое в качестве автора переводов. Если не задан, используется «анонимный пользователь».

--overwrite#

Перезаписывать ли существующие переводы.

--inconsistent#

Перезаписывать ли существующие переводы с противоречивыми переводами (смотрите проверку Противоречия).

--add#

Автоматически добавлять язык, если указанный перевод не существует.

--mt MT#

В качестве машинного перевода использовать машинный перевод, а не перевод из других компонентов.

--threshold THRESHOLD#

Порог сходства для машинного перевода, по умолчанию установлен в 80.

--mode MODE#

Укажите режим перевода, по умолчанию перевести, но можно использовать неточный или предложение.

Пример:

weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs

сельдерей_очереди#

weblate celery_queues#

Отображает длину очереди задач Celery.

проверить git#

weblate checkgit <project|project/component>#

Распечатывает текущее состояние внутреннего репозитория Git.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

совершить git#

weblate commitgit <project|project/component>#

Коммитит все возможные отложенные изменения во внутренний репозиторий Git.

Вы можете либо определить, какой проект или компонент обновлять (например, «weblate/application»), либо использовать «–all» для обновления всех существующих компонентов, либо использовать «–file-format» для фильтрации. в зависимости от формата файла.

зафиксировать_ожидании#

weblate commit_pending <project|project/component>#

Коммитит отложенные изменения старше указанного возраста.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

--age HOURS#

Возраст в часах для коммита. Если не указан, то используется значение, заданное в настройках компонента.

Примечание

Она автоматически выполняется Weblate’ом в фоновом режиме, поэтому вручную вызывать эту команду нет никакой реальной необходимости, кроме разве что принудительного выполнения коммита в более раннее время, чем задано в конфигурации компонента.

очисткатранс#

weblate cleanuptrans#

Очищает осиротевшие проверки и предложения перевода. Обычно запускать её вручную нет необходимости, поскольку очистка происходит автоматически в фоновом режиме.

очистка_ssh_ключей#

weblate cleanup_ssh_keys#

Добавлено в версии 4.9.1.

Выполняет очистку сохранённых ключей хоста SSH:

  • Удаляет устаревшие RSA-ключи для GitHub, которые могли вызвать проблемы с подключением к GitHub.

  • Удаляет дублирующиеся записи в ключах хостов.

создать администратора#

weblate createadmin#

Создаёт учётную запись admin со случайным паролем, если он не указан явно.

--password PASSWORD#

Взять пароль из командной строки, случайный пароль в этом случае не генерируется.

--no-password#

Не устанавливать пароль, это может быть полезно при запуске с ключом --update.

--username USERNAME#

Использовать указанное имя вместо admin.

--email USER@EXAMPLE.COM#

Указывает адрес электронной почты администратора.

--name#

Указывает (отображаемое) имя администратора.

--update#

Обновление существующего пользователя (вы можете использовать этот ключ для изменения паролей).

дамп_памяти#

weblate dump_memory#

Экспортирует JSON-файл, содержащий содержимое памяти переводов Weblate’а.

выгрузить#

weblate dumpuserdata <file.json>#

Сбрасывает пользовательские данные в файл для последующего использования importuserdata.

Подсказка

Она пригодится при переносе или слиянии экземпляров Weblate’а.

import_demo#

weblate import_demo#

Добавлено в версии 4.1.

Создаёт демонстрационный проект с компонентами на основе <https://github.com/WeblateOrg/demo>. Перед выполнением этой команды убедитесь, что задачи celery запущены.

Может быть полезна при разработке Weblate’а.

импортировать_json#

weblate import_json <json-file>#

Пакетный импорт компонентов, основанных на данных из JSON.

Структура JSON импортируемого файла в значительной степени соответствует объекту компонента (смотрите GET /api/components/(string:project)/(string:component)/). Вы должны включить поля name и filemask.

--project PROJECT#

Указывает, откуда будут импортироваться компоненты.

--main-component COMPONENT#

Использовать указанный репозиторий системы контроля версий из этого компонента для всех остальных.

--ignore#

Пропускать (уже) импортированные компоненты.

--update#

Обновлять (уже) импортированные компоненты.

Пример JSON-файла:

[
  {
    "slug": "po",
    "name": "Gettext PO",
    "file_format": "po",
    "filemask": "po/*.po",
    "new_lang": "none"
  },
  {
    "name": "Android",
    "filemask": "android/values-*/strings.xml",
    "template": "android/values/strings.xml",
    "repo": "weblate://test/test",
    "file_format": "aresource"
  }
]

См.также

import_memory

импорт_памяти#

weblate import_memory <file>#

Импортирует файл TMX или JSON в память переводов Weblate’а.

--language-map LANGMAP#

Позволяет отобразить языки из TMX на память переводов Weblate’а. Коды языков отображаются после выполняемой Weblate’ом нормализации.

Например, --language-map ru_RU:ru импортирует все строки с языком ru_RU как строки с языком ru.

Это может быть полезно в том случае, если локали в ваших файлах TMX не совпадают с теми, которые вы используете в Weblate’е.

import_project#

weblate import_project <project> <gitrepo> <branch> <filemask>#

Пакетный импорт компонентов в проект на основе маски файла. Он основан на дополнении Обнаружение компонентов, поэтому вы можете использовать его вместо этого.

Параметр <project> определяет имя существующего проекта, в который будут импортированы компоненты.

Параметр <gitrepo> определяет URL-адрес используемого Git-репозитория, а <branch> — его ветку. Для импорта дополнительных компонентов перевода из существующего компонента Weblate’а используйте для параметра <gitrepo> адрес вида weblate://<проект>/<компонент>.

Параметр <filemask> определяет маску искомых файлов в репозитории. Он может быть либо простой строкой с подстановочными знаками, либо использовать всю мощь регулярных выражений.

Простое сопоставление использует ** для имени компонента и * для языка, например: **/*.po

Регулярное выражение должно содержать группы с именами component и language. Например: (?P<language>[^/]*)/(?P<component>[^-/]*)\.po

Импорт сопоставляет найденные файлы с существующими компонентами на основе имён файлов перевода в них и добавляет новые компоненты, которые до этого не существовали. Уже существующие компоненты он не меняет.

--name-template TEMPLATE#

Задаёт имя компонента, используя синтаксис шаблонов Django.

Например: Документация: {{ component }}

--base-file-template TEMPLATE#

Задаёт базовый файл для одноязычных переводов.

Например: {{ component }}/res/values/string.xml

--new-base-template TEMPLATE#

Задаёт базовый файл для добавления новых переводов.

Например: {{ component }}/ts/en.ts

--file-format FORMAT#

Также вы можете указать формат файла (смотрите раздел Поддерживаемые форматы файлов), по умолчанию используется автоматическое определение.

--language-regex REGEX#

С помощью этого параметра можно указать языковой фильтр (смотрите раздел Настройки компонента). Должен быть правильным регулярным выражением.

--main-component#

Вы можете указать, какой компонент будет выбран в качестве основного — тот, который фактически содержит репозиторий системы контроля версий.

--license NAME#

Указывает общую, проектную или компонентную лицензию на перевод.

--license-url URL#

Указывает URL-адрес, по которому может быть найдена лицензия перевода.

--vcs NAME#

В случае, если вам необходимо указать, какую использовать систему контроля версий, вы можете сделать это здесь. Система контроля версий по умолчанию — Git.

Примера ради, давайте попробуем импортировать пару проектов.

Первый — перевод Руководства Debian, в котором для каждого языка имеется отдельный каталог с переводами каждой главы:

weblate import_project \
    debian-handbook \
    git://anonscm.debian.org/debian-handbook/debian-handbook.git \
    squeeze/master \
    '*/**.po'

Далее инструмент Tanaguru, для которого необходимо указать формат файла, шаблон базового файла, а также то, что все компоненты и переводы расположены в одном каталоге:

weblate import_project \
    --file-format=properties \
    --base-file-template=web-app/tgol-web-app/src/main/resources/i18n/%s-I18N.properties \
    tanaguru \
    https://github.com/Tanaguru/Tanaguru \
    master \
    web-app/tgol-web-app/src/main/resources/i18n/**-I18N_*.properties

Более сложный пример разбора имён файлов для получения правильного компонента и языка из имени файла вида src/security/Numerous_security_holes_in_0.10.1.de.po:

weblate import_project \
    tails \
    git://git.tails.boum.org/tails master \
    'wiki/src/security/(?P<component>.*)\.(?P<language>[^.]*)\.po$'

Импорт переводов только на указанные языки:

./manage import_project \
    --language-regex '^(cs|sk)$' \
    weblate \
    https://github.com/WeblateOrg/weblate.git \
    'weblate/locale/*/LC_MESSAGES/**.po'

Импорт Sphinx-документации, разбитой на несколько файлов:

$ weblate import_project --name-template 'Documentation: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/**.po'

Импорт Sphinx-документации, разбитой на несколько файлов и каталогов:

$ weblate import_project --name-template 'Directory 1: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir1/**.po'
$ weblate import_project --name-template 'Directory 2: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir2/**.po'

См.также

Более подробные примеры можно найти в главе Знакомство с интернационализацией, в качестве альтернативы вы можете использовать import_json.

импортировать пользовательские данные#

weblate importuserdata <file.json>#

Импортирует пользовательские данные из файла, созданного dumpuserdata.

импортировать пользователей#

weblate importusers --check <file.json>#

Импортирует пользователей из JSON-дампа Django базы данных auth_users.

--check#

С этим параметром команда просто проверит, возможно ли импортировать данный файл, и сообщит о возможных конфликтах, связанных с именами пользователей или их адресами электронной почты.

Выгрузить пользователей из существующей установки Django вы можете при помощи команды:

weblate dumpdata auth.User > users.json

установить_аддон#

weblate install_addon --addon ADDON <project|project/component>#

Устанавливает надстройку для компонентов.

--addon ADDON#

Названия устанавливаемого дополнения. Например, weblate.gettext.customize.

--configuration CONFIG#

Настройки надстройки в виде JSON.

--update#

Обновляет существующую конфигурацию надстройки.

Вы можете либо задать для какого конкретного компонента или проекта устанавливать надстройку (например, weblate/application), либо использовать ключ --all, чтобы установить её для всех компонентов.

Например, чтобы установить надстройку «Настройка вывода gettext» для всех компонентов, выполните:

weblate install_addon --addon weblate.gettext.customize --configuration '{"width": -1}' --update --all

См.также

Надстройки

установить _ оборудование#

Добавлено в версии 4.18.

weblate install_machinery --service SERVICE#

Устанавливает службу автоматических предложений по всему сайту.

--service SERVICE#

Имя службы для установки. Например, «глубокий».

--configuration CONFIG#

Конфигурация службы в формате JSON.

--update#

Обновите существующую конфигурацию службы.

Чтобы установить DeepL:

weblate install_service --service deepl --configuration '{"key": "x", "url": "https://api.deepl.com/v2/"}' --update

список_языков#

weblate list_languages <locale>#

Выводит список поддерживаемых языков в разметке MediaWiki: коды языков, английские названия и локализованные названия.

Используется для генерации словаря с названиями языков.

список_переводчиков#

weblate list_translators <project|project/component>#

Показывает переводчиков по языкам проекта:

[French]
Jean Dupont <jean.dupont@example.com>
[English]
John Doe <jd@example.com>
--language-code#

Сортировать список по кодам языков, а не по их названиям.

Вы можете либо задать конкретный проект или компонент (например, weblate/application), либо использовать ключ --all, чтобы получить список всех переводчиков всех существующих компонентов.

list_versions#

weblate list_versions#

Выводит список всех зависимостей weblate и их версии.

нагрузкапо#

weblate loadpo <project|project/component>#

Перезагружает переводы с диска (например, если вы внесли обновления в свою систему контроля версий).

--force#

Принудительно обновлять файлы, даже если эти файлы и так уже должны были бы быть в актуальном состоянии.

--lang LANGUAGE#

Ограничится обработкой только заданного языка.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

Примечание

Вообще говоря, вам не часто придётся пользоваться данной командой: Weblate автоматически загружает изменившиеся файлы во время каждого обновления системы контроля версий. Однако, это может потребоваться, если вы вручную внесли изменения в репозиторий СКВ, управляемый Weblate, или в некоторых особых случаях после обновления.

блокировка_перевод#

weblate lock_translation <project|project/component>#

Запрещает последующий перевод компонента.

Подсказка

Эта команда бывает полезна, когда вы хотите провести какое-нибудь тех. обслуживание нижележащего репозитория.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

См.также

unlock_translation

мигрировать#

weblate migrate#

Переносит базу данных в текущую схему Weblate. Параметры командной строки описаны в Django migrate.

Подсказка

Если вы хотите запустить установку не в интерактивном режиме, вы можете использовать weblatemigrate --noinput, а затем создать пользователя-администратора с помощью команды createadmin.

переместить_язык#

weblate move_language source target#

Позволяет вам объединить содержимое разных языков. Это может быть полезно при переходе на новую версию, в которой появились псевдонимы для языков, созданных вручную ранее, тем, которым был присвоен суффикс (generated). Эта команда перемещает все содержимое языка source в язык target.

Пример:

weblate move_language cze cs

После перемещения содержимого вам следует проверить, не осталось ли что-то не перенесенное (т.к. при этом могло возникнуть состояние гонки, когда кто-то одновременно с вами обновляет репозиторий), и удалить язык, помеченный как (generated).

нажать git#

weblate pushgit <project|project/component>#

Отправляет закоммиченные изменения в вышестоящий репозиторий.

--force-commit#

Принудительно закоммитить все ожидающие изменения перед тем как отправить их в вышестоящий репозиторий.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

Примечание

Weblate отправляет изменения автоматически, если отправка при коммите включена в настройках компонента (по умолчанию это так).

разблокировать_перевод#

weblate unlock_translation <project|project/component>#

Разблокировывает данный компонент, делая его доступным для перевода.

Подсказка

Эта команда бывает полезна, когда вы хотите провести какое-нибудь тех. обслуживание нижележащего репозитория.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

См.также

lock_translation

установочные группы#

weblate setupgroups#

Задаёт группу по умолчанию и, опционально, переносит всех пользователей в эту группу.

--no-privs-update#

Отключает автообновление существующих групп (только добавляет новые).

--no-projects-update#

Предотвращает автоматическое обновление групп уже существующих проектов. Это даёт возможность добавлять свежесозданные группы к существующим проектам, смотреть раздел Контроль доступа к проекту.

язык настройки#

weblate setuplang#

Обновляет список определенных языков в Weblate.

--no-update#

Отключает автообновление существующих языков (только добавляет новые).

проверки обновлений#

weblate updatechecks <project|project/component>#

Обновляет все проверки всех строк.

Подсказка

Полезна после обновлений Weblate, которые в значительной степени меняют проверки.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

Примечание

Чеки регулярно пересчитываются Weblate в фоновом режиме, частоту можно настроить с помощью BACKGROUND_TASKS.

обновить git#

weblate updategit <project|project/component>#

Извлекает изменения из удалённого репозитория системы контроля версий в локальный и обновляет внутренний кеш.

Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.

Примечание

Обычно лучше настроить перехватчики в репозитории для запуска Обработчики уведомлений вместо обычного запуска обновлений с помощью updategit.