Команды управления#
Примечание
Запуск команд управления от имени пользователя, отличного от того, под которым работает ваш веб-сервер, может привести к тому, что права доступа на файлы будут выставлены неверно. Для получения более подробной информации обратитесь к разделу Права доступа к файлам.
Основные команды управления доступны из скрипта ./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"
}
]
См.также
импорт_памяти#
- 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
для обновления всех существующих компонентов.
См.также
мигрировать#
- 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
для обновления всех существующих компонентов.
См.также
установочные группы#
- 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
.