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

Примечание

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

Основные команды управления доступны из скрипта ./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

For docker-compose-plugin the process is similar, you just have to use 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

auto_translate#

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

celery_queues#

weblate celery_queues#

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

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

checkgit#

weblate checkgit <project|project/component>#

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

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

commitgit#

weblate commitgit <project|project/component>#

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

You can either define which project or component to update (for example weblate/application), or use --all to update all existing components, or use --file-format to filter based on the file format.

commit_pending#

weblate commit_pending <project|project/component>#

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

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

--age HOURS#

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

Примечание

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

cleanuptrans#

weblate cleanuptrans#

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

cleanup_ssh_keys#

weblate cleanup_ssh_keys#

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

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

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

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

createadmin#

weblate createadmin#

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

--password PASSWORD#

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

--no-password#

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

--username USERNAME#

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

--email USER@EXAMPLE.COM#

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

--name#

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

--update#

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

dump_memory#

weblate dump_memory#

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

dumpuserdata#

weblate dumpuserdata <file.json>#

Dumps userdata to a file for later use by weblate importuserdata.

Подсказка

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

import_demo#

weblate import_demo#

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

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

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

import_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"
  }
]

См.также

weblate import_memory

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>#

Изменено в версии 3.0: Команда import_project теперь основана на надстройке Обнаружение компонентов, что привело к некоторым изменениям в поведении и принимаемых параметрах.

Пакетный импорт компонентов в проект на основе маски файлов.

Параметр <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'

См.также

More detailed examples can be found in the Знакомство с интернационализацией chapter, alternatively you might want to use weblate import_json.

importuserdata#

weblate importuserdata <file.json>#

Imports user data from a file created by weblate dumpuserdata.

importusers#

weblate importusers --check <file.json>#

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

--check#

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

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

weblate dumpdata auth.User > users.json

install_addon#

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

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

См.также

Надстройки

install_machinery#

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

weblate install_machinery --service SERVICE#

Installs an site-wide automatic suggestion service.

--service SERVICE#

Name of the service to install. For example deepl.

--configuration CONFIG#

JSON encoded configuration of a service.

--update#

Update the existing service configuration.

To install DeepL:

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

list_languages#

weblate list_languages <locale>#

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

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

list_translators#

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 и их версии.

loadpo#

weblate loadpo <project|project/component>#

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

--force#

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

--lang LANGUAGE#

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

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

Примечание

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

lock_translation#

weblate lock_translation <project|project/component>#

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

Подсказка

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

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

См.также

weblate unlock_translation

migrate#

weblate migrate#

Migrates database to current Weblate schema. The command line options are described at Django migrate.

Подсказка

In case you want to run an installation non interactively, you can use weblate migrate --noinput, and then create an admin user using weblate createadmin command.

move_language#

weblate move_language source target#

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

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

Пример:

weblate move_language cze cs

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

pushgit#

weblate pushgit <project|project/component>#

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

--force-commit#

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

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

Примечание

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

unlock_translation#

weblate unlock_translation <project|project/component>#

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

Подсказка

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

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

См.также

weblate lock_translation

setupgroups#

weblate setupgroups#

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

--no-privs-update#

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

--no-projects-update#

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

setuplang#

weblate setuplang#

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

--no-update#

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

updatechecks#

weblate updatechecks <project|project/component>#

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

Подсказка

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

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

Примечание

Checks are recalculated regularly by Weblate in the background, the frequency can be configured via BACKGROUND_TASKS.

updategit#

weblate updategit <project|project/component>#

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

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

Примечание

Usually it is better to configure hooks in the repository to trigger Обработчики уведомлений, instead of regular triggering the updates by weblate updategit.