Команды управления¶
Примечание
Запуск команд управления под пользователем, отличным от того, под которым работает ваш веб-сервер, может привести к тому, что файлы получат неправильные разрешения, для получения более подробной информации обратитесь к разделу Разрешения файловой системы.
Основные команды управления доступны из скрипта ./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 или pip3 или скрипта ./setup.py
, команда weblate устанавливается в каталог, доступный через системную переменную окружения PATH (или через переменную PATH виртуального окружения), откуда вы можете использовать её для управления Weblate’ом:
weblate list_versions
В случае использования образа Docker’а скрипт устанавливается так же, как и выше, и вы можете запустить его с помощью команды docker exec:
docker exec --user weblate <container> weblate list_versions
Для команды 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
См.также
Установка с помощью Docker’а, Установка на Debian и Ubuntu, Установка на SUSE и openSUSE, Установка на RedHat, Fedora и CentOS
Установка из исходников, рекомендуется для разработки.
add_suggestions¶
-
weblate add_suggestions <project> <component> <language> <file>
¶
Добавлено в версии 2.5.
Импортирует перевод из файла, чтобы использовать его как предложение для данного перевода. Команда пропускает дубликаты перевода; добавляются только отличающиеся.
Электронная почта автора предложений. До выполнения импорта следует убедится, что этот пользователь существует (при необходимости его можно создать через интерфейс администратора).
Пример:
weblate --author michal@cihar.com add_suggestions weblate application cs /tmp/suggestions-cs.po
auto_translate¶
-
weblate auto_translate <project> <component> <language>
¶
Добавлено в версии 2.5.
Выполняет автоматический перевод на основе переводов других компонентов.
-
--source
PROJECT/COMPONENT
¶ Задаёт компонент, используемый в качестве доступных для перевода исходных строк. Если не задан, то используются все компоненты проекта.
-
--user
USERNAME
¶ Задаёт имя пользователя, указываемое в качестве автора переводов. Если не задан, используется «анонимный пользователь».
-
--overwrite
¶
Перезаписывать ли существующие переводы.
-
--inconsistent
¶
Перезаписывать ли существующие переводы с непоследовательными переводами (смотрите проверку Противоречия).
-
--add
¶
Автоматически добавлять язык, если указанный перевод не существует.
-
--mt
MT
¶ В качестве машинного перевода использовать машинный перевод, а не перевод из других компонентов.
-
--threshold
THRESHOLD
¶ Порог сходства для машинного перевода, по умолчанию установлен в 80.
Пример:
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.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
commit_pending¶
-
weblate commit_pending <project|project/component>
¶
Коммитит отложенные изменения старше указанного возраста.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
-
--age
HOURS
¶ Возраст в часах для коммита. Если не указан, то используется значение, настроенное в конфигурации компонента.
Примечание
Она автоматически выполняется Weblate’ом в фоновом режиме, поэтому вручную вызывать эту команду нет никакой реальной необходимости, кроме разве что принудительного выполнения коммита в более раннее время, чем задано в конфигурации компонента.
cleanuptrans¶
-
weblate cleanuptrans
¶
Очищает осиротевшие проверки и предложения перевода. Обычно запускать её вручную нет необходимости, поскольку очистка происходит автоматически в фоновом режиме.
createadmin¶
-
weblate createadmin
¶
Создаёт учётную запись admin
со случайным паролем, если он не указан явно.
-
--password
PASSWORD
¶ Взять пароль из командной строки, случайный пароль в этом случае не генерируется.
-
--no-password
¶
Не устанавливать пароль, это может быть полезно при запуске с ключом
--update
.
-
--username
USERNAME
¶ Использовать указанное имя вместо
admin
.
-
--email
USER@EXAMPLE.COM
¶ Указывает адрес электронной почты администратора.
-
--name
¶
Указывает (отображаемое) имя администратора.
-
--update
¶
Обновление существующего пользователя (вы можете использовать этот ключ для изменения паролей).
Изменено в версии 2.9: Добавлены параметры --username
, --email
, --name
и --update
.
dump_memory¶
-
weblate dump_memory
¶
Добавлено в версии 2.20.
Экспортирует JSON-файл, содержащий содержимое памяти переводов Weblate’а.
dumpuserdata¶
-
weblate dumpuserdata <file.json>
¶
Сбрасывает данные пользователя в файл для последующего их использования командой importuserdata
Подсказка
Она пригодится при переносе или слиянии экземпляров Weblate’а.
import_demo¶
-
weblate import_demo
¶
Добавлено в версии 4.1.
Создаёт демонстрационный проект с компонентами на основе проекта <https://github.com/WeblateOrg/demo>.
Может быть полезна при разработке Weblate’а.
import_json¶
-
weblate import_json <json-file>
¶
Добавлено в версии 2.7.
Пакетный импорт компонентов, основанных на данных из JSON.
Структура JSON импортируемого файла в значительной степени соответствует объекту компонента (смотрите GET /api/components/(string:project)/(string:component)/
). Вы должны включить поля name
и filemask
.
-
--project
PROJECT
¶ Указывает, откуда будут импортироваться компоненты.
-
--main-component
COMPONENT
¶ Использовать указанный репозиторий системы контроля версий из этого компонента для всех остальных.
-
--ignore
¶
Пропускать (уже) импортированные компоненты.
-
--update
¶
Обновлять (уже) импортированные компоненты.
Изменено в версии 2.9: Параметры --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>
¶
Добавлено в версии 2.20.
Импортирует файл 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'
См.также
Более подробные примеры можно найти в главе Знакомство с интернационализацией, в качестве альтернативы вы можете использовать команду import_json
.
importuserdata¶
-
weblate importuserdata <file.json>
¶
Импортирует данные пользователя из файла, созданного командой 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>
¶
Installs an addon to a set of components.
-
--addon
ADDON
¶ Названия устанавливаемого дополнения. Например,
weblate.gettext.customize
.
-
--configuration
CONFIG
¶ JSON encoded configuration of an addon.
-
--update
¶
Обновляет существующую конфигурацию надстройки.
You can either define which project or component to install the addon in (for example
weblate/application
), or use --all
to include all existing components.
Для установки надстройки Настройка вывода gettext для всех компонентов:
weblate install_addon --addon weblate.gettext.customize --config '{"width": -1}' --update --all
См.также
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
¶
List names by language code instead of language name.
You can either define which project or component to use (for example
weblate/application
), or use --all
to list translators from all existing
components.
loadpo¶
-
weblate loadpo <project|project/component>
¶
Reloads translations from disk (for example in case you have done some updates in the VCS repository).
-
--force
¶
Force update, even if the files should be up-to-date.
-
--lang
LANGUAGE
¶ Limit processing to a single language.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
Примечание
You seldom need to invoke this, Weblate will automatically load changed files for every VCS update. This is needed in case you manually changed an underlying Weblate VCS repository or in some special cases following an upgrade.
lock_translation¶
-
weblate lock_translation <project|project/component>
¶
Запрещает последующий перевод компонента.
Подсказка
Useful in case you want to do some maintenance on the underlying repository.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
См.также
move_language¶
-
weblate move_language source target
¶
Добавлено в версии 3.0.
Allows you to merge language content. This is useful when updating to a new version which contains aliases for previously unknown languages that have been created with the (generated) suffix. It moves all content from the source language to the target one.
Пример:
weblate move_language cze cs
After moving the content, you should check whether there is anything left (this is subject to race conditions when somebody updates the repository meanwhile) and remove the (generated) language.
pushgit¶
-
weblate pushgit <project|project/component>
¶
Pushes committed changes to the upstream VCS repository.
-
--force-commit
¶
Force commits any pending changes, prior to pushing.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
Примечание
Weblate pushes changes automatically if Push on commit in Конфигурация компонента is turned on, which is the default.
unlock_translation¶
-
weblate unlock_translation <project|project/component>
¶
Разблокировывает данный компонент, делая его доступным для перевода.
Подсказка
Useful in case you want to do some maintenance on the underlying repository.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
См.также
setupgroups¶
-
weblate setupgroups
¶
Configures default groups and optionally assigns all users to that default group.
-
--no-privs-update
¶
Отключает автообновление существующих групп (только добавляет новые).
-
--no-projects-update
¶
Prevents automatic updates of groups for existing projects. This allows adding newly added groups to existing projects, see По-проектный контроль доступа.
См.также
setuplang¶
-
weblate setuplang
¶
Обновляет список определенных языков в Weblate.
-
--no-update
¶
Отключает автообновление существующих языков (только добавляет новые).
updatechecks¶
-
weblate updatechecks <project|project/component>
¶
Updates all checks for all strings.
Подсказка
Useful for upgrades which do major changes to checks.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
updategit¶
-
weblate updategit <project|project/component>
¶
Fetches remote VCS repositories and updates the internal cache.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application
), либо использовать ключ --all
для обновления всех существующих компонентов.
Примечание
Usually it is better to configure hooks in the repository to trigger
Обработчики уведомлений, instead of regular polling by updategit
.