Команды управления¶
Примечание
Запуск команд управления от имени пользователя, отличного от того, под которым работает ваш веб-сервер, может привести к тому, что права доступа на файлы будут выставлены неверно. Для получения более подробной информации обратитесь к разделу Права доступа к файлам.
Основные команды управления доступны из скрипта ./manage.py в исходниках Django, или их расширенный набор из скрипта weblate, устанавливаемом поверх Weblate.
Вызов команд управления¶
Как упоминалось ранее, вызов команд зависит от того, как вы установили Weblate.
При использовании виртуального окружения Python для Weblate вы можете либо указать полный путь к weblate, либо активировать виртуальное окружение перед его вызовом:
# Direct invocation
~/weblate-env/bin/weblate
# Activating Python environment 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 устанавливается в ваш путь (или путь виртуального окружения Python), откуда вы можете использовать его для управления 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
add_suggestions¶
- weblate add_suggestions <project> <component> <language> <file>¶
Импортирует перевод из файла, чтобы использовать его как предложение для данного перевода. Команда пропускает дубликаты перевода; добавляются только отличающиеся.
- --author USER@EXAMPLE.COM¶
E-mail of author for the suggestions. This user has to exist prior to importing (you can create one in the admin interface if needed).
Пример:
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¶
Specifies the component to use as source available for translation. If not specified all components in the project are used.
- --user USERNAME¶
Specify username listed as author of the translations. «Anonymous user» is used if not specified.
- --overwrite¶
Whether to overwrite existing translations.
- --inconsistent¶
Whether to overwrite existing translations that are inconsistent (see Противоречия).
- --add¶
Automatically add language if a given translation does not exist.
- --mt MT¶
Use machine translation instead of other components as machine translations.
- --threshold THRESHOLD¶
Similarity threshold for machine translation, defaults to 80.
- --mode MODE¶
Specify translation mode, default is
translatebutfuzzyorsuggestcan be used.
Пример:
weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs
См. также
backup¶
- weblate backup¶
Запускает настроенные резервные копии синхронно, без использования Celery. Сначала он обновляет резервные копии настроек и базы данных в DATA_DIR, затем запускает выбранную службу или службы резервного копирования Borg.
- --list¶
Lists configured backup service IDs.
- --service ID¶
Runs one backup service by ID.
- --all¶
Runs all enabled backup services.
Используйте стандартную опцию Django --verbosity 2 для отображения вывода службы резервного копирования. Вывод неудачной службы резервного копирования отображается даже без повышенной детальности.
Примеры:
weblate backup --list
weblate backup --service 1 --verbosity 2
weblate backup --all
Для развёртываний Docker Compose вы можете остановить обычный контейнер Weblate и выполнить команду в одноразовом контейнере с помощью docker compose run. База данных и настроенное хранилище резервных копий по-прежнему должны быть доступны.
docker compose stop weblate
docker compose run --rm --user weblate weblate weblate backup --list
docker compose run --rm --user weblate weblate weblate backup --service 1 --verbosity 2
benchmark¶
- weblate benchmark¶
Импортирует заданный контент в Weblate, полезен для сравнительного анализа.
# Run benchmark with a profiling
python -m cProfile -o benchmark.prof ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip
# Convert to SVG for visualization
uvx gprof2dot -f pstats benchmark.prof | dot -Tsvg -o benchmark.svg
# Display SVG
firefox ./benchmark.svg
# Run benchmark under memray
uvx memray run ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip
# Render the profile
uvx memray flamegraph ./memray-manage.py.2554179.bin
# Display it
fixefox memray-flamegraph-manage.py.2554179.html
billing_demo¶
- weblate billing_demo¶
Добавлено в версии 5.15.
Создаёт демонстрационный проект биллинга. Может выполняться несколько раз для добавления дополнительных счетов и событий биллинга.
Может быть полезно при разработке Weblate. Требует установки Выставление счетов.
celery_queues¶
- weblate celery_queues¶
Отображает длину очереди задач Celery.
См. также
checkgit¶
- weblate checkgit <project|project/component>¶
Распечатывает текущее состояние внутреннего репозитория Git.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
commitgit¶
- weblate commitgit <project|project/component>¶
Коммитит все возможные отложенные изменения во внутренний репозиторий Git.
Вы можете либо определить, какой проект или компонент обновлять (например, weblate/application), либо использовать --all для обновления всех существующих компонентов, либо использовать --file-format для фильтрации. в зависимости от формата файла.
commit_pending¶
- weblate commit_pending <project|project/component>¶
Коммитит отложенные изменения старше указанного возраста.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
- --age HOURS¶
Age in hours for committing. If not specified the value configured in Настройки компонента is used.
Примечание
Это автоматически выполняется в фоновом режиме Weblate, поэтому нет реальной необходимости вызывать это вручную, кроме как для принудительного выполнения коммита раньше, чем указано в Настройки компонента.
cleanuptrans¶
- weblate cleanuptrans¶
Очищает осиротевшие проверки и предложения перевода. Обычно запускать её вручную нет необходимости, поскольку очистка происходит автоматически в фоновом режиме.
cleanup_memory¶
- weblate cleanup_memory¶
Добавлено в версии 5.13.
Удаляет все устаревшие записи с ожидающим статусом из памяти переводов.
cleanup_ssh_keys¶
- weblate cleanup_ssh_keys¶
Добавлено в версии 4.9.1.
Выполняет очистку сохранённых ключей хоста SSH:
Удаляет устаревшие RSA-ключи для GitHub, которые могли вызвать проблемы с подключением к GitHub.
Удаляет дублирующиеся записи в ключах хостов.
См. также
createadmin¶
- weblate createadmin¶
Создаёт учётную запись admin со случайным паролем, если он не указан явно.
- --password PASSWORD¶
Provides a password on the command-line, to not generate a random one.
- --no-password¶
Do not set password, this can be useful with –update.
- --username USERNAME¶
Use the given name instead of
admin.
- --email USER@EXAMPLE.COM¶
Specify the admin e-mail address.
- --name¶
Specify the admin name (visible).
- --update¶
Update the existing user (you can use this to change passwords).
dump_memory¶
- weblate dump_memory¶
Экспортирует JSON-файл, содержащий содержимое памяти переводов Weblate’а.
dumpuserdata¶
- weblate dumpuserdata <file.json>¶
Сбрасывает пользовательские данные в файл для последующего использования importuserdata.
Подсказка
Она пригодится при переносе или слиянии экземпляров Weblate’а.
import_demo¶
- weblate import_demo¶
Добавлено в версии 4.1.
Создаёт демонстрационный проект с компонентами на основе <https://github.com/WeblateOrg/demo>. Перед выполнением этой команды убедитесь, что задачи celery запущены.
Может быть полезна при разработке Weblate’а.
- --delete¶
Removes existing demo project.
import_json¶
- weblate import_json <json-file>¶
Пакетный импорт компонентов, основанных на данных из JSON.
Структура JSON импортируемого файла в значительной степени соответствует объекту компонента (смотрите GET /api/components/(string:project)/(string:component)/). Вы должны включить поля name и filemask.
- --project PROJECT¶
Specifies where the components will be imported from.
- --main-component COMPONENT¶
Use the given VCS repository from this component for all of them.
- --ignore¶
Skip (already) imported components.
- --update¶
Update (already) imported components.
Пример 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>¶
Импортирует файл в память переводов Weblate.
Поддерживаемые форматы файлов: TMX, JSON, XLIFF, PO, CSV.
Указание исходного и целевого языков может потребоваться для форматов, отличных от JSON и TMX.
- --language-map LANGMAP¶
Allows mapping languages in the TMX to the Weblate translation memory. The language codes are mapped after normalization usually done by Weblate.
--language-map en_US:enwill for example import allen_USstrings asenones.This can be useful in case your TMX file locales happen not to match what you use in Weblate.
- --source-language SOURCE_LANG¶
Specifies the source language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.
- --target-language TARGET_LANG¶
Specifies the target language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.
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¶
Customize the name of a component using Django template syntax.
For example:
Documentation: {{ component }}
- --base-file-template TEMPLATE¶
Customize the base file for monolingual translations.
For example:
{{ component }}/res/values/string.xml
- --new-base-template TEMPLATE¶
Customize the base file for addition of new translations.
For example:
{{ component }}/ts/en.ts
- --file-format FORMAT¶
You can also specify the file format to use (see Форматы файлов локализации), the default is auto-detection.
- --language-regex REGEX¶
You can specify language filtering (see Настройки компонента) with this parameter. It has to be a valid regular expression.
- --main-component¶
You can specify which component will be chosen as the main one—the one actually containing the VCS repository.
- --license NAME¶
Specify the overall, project or component translation license.
- --license-url URL¶
Specify the URL where the translation license is to be found.
- --vcs NAME¶
In case you need to specify which version control system to use, you can do it here. The default version control is Git.
Примера ради, давайте попробуем импортировать пару проектов.
Первый — перевод Руководства Debian, в котором для каждого языка имеется отдельный каталог с переводами каждой главы:
weblate import_project \
debian-handbook \
https://salsa.debian.org/hertzog/debian-handbook.git \
bullseye/main \
'*/**.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.
import_projectbackup¶
- weblate import_projectbackup <project_name> <project_slug> <username> <filename>¶
Добавлено в версии 5.10.
Импортирует Резервные копии на уровне проекта.
Подсказка
Обычно импортировать проект удобнее при Добавление проектов и компонентов перевода.
importuserdata¶
- weblate importuserdata <file.json>¶
Импортирует пользовательские данные из файла, созданного dumpuserdata.
importusers¶
- weblate importusers --check <file.json>¶
Импортирует пользователей из JSON-дампа Django базы данных auth_users.
- --check¶
With this option it will just check whether a given file can be imported and report possible conflicts arising from usernames or e-mails.
Вы можете выгрузить пользователей из существующего сайта Django с помощью:
./manage.py dumpdata auth.User > users.json
Подсказка
Используйте dumpuserdata для выгрузки данных с другого сервера Weblate, так как он также включает настройки пользователя.
См. также
install_addon¶
- weblate install_addon --addon ADDON <project|project/component>¶
Устанавливает надстройку для компонентов.
- --addon ADDON¶
Name of the add-on to install. For example
weblate.gettext.customize.
- --configuration CONFIG¶
JSON encoded configuration of an add-on.
- --update¶
Update the existing add-on configuration.
Вы можете либо задать для какого конкретного компонента или проекта устанавливать надстройку (например, weblate/application), либо использовать ключ --all, чтобы установить её для всех компонентов.
Чтобы установить Создание MO-файлов для всех компонентов:
weblate install_addon --addon weblate.gettext.mo --configuration '{"fuzzy": true}' --update --all
См. также
install_machinery¶
Добавлено в версии 4.18.
- weblate install_machinery --service 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.
Чтобы установить DeepL:
weblate install_machinery --service deepl --configuration '{"key": "x", "url": "https://api.deepl.com/v2/"}' --update
См. также
list_addons¶
- weblate list_addons¶
Перечисляет дополнения в reStructuredText как шаблон для Дополнения.
- --sections {events,addons,parameters}¶
Filter the generated output to just the add-on event sections, the built-in add-on sections, or the shared add-on parameter sections. If omitted, all generated sections are shown.
См. также
list_permissions¶
- weblate list_permissions¶
Перечисляет разрешения в reStructuredText как шаблон для Контроль доступа.
См. также
list_checks¶
- weblate list_checks¶
Перечисляет проверки качества в reStructuredText как шаблон для Проверки и исправления и Проверки и исправления.
- --sections {checks,flags}¶
Filter the generated output to just the quality check sections or the shared check flag sections. If omitted, all generated sections are shown.
Примечание
Использование --output требует выбора ровно одного значения в --sections, чтобы каждый сгенерированный фрагмент записывался в свой собственный файл. Это соответствует рабочему процессу Внести вклад в документацию Weblate и целям make -C docs update-docs.
См. также
list_languages¶
- weblate list_languages <locale>¶
Выводит список поддерживаемых языков в разметке MediaWiki: коды языков, английские названия и локализованные названия.
Используется для генерации <https://www.l10n.cz/wiki/Slovn%C3%ADky/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF/>.
list_machinery¶
- weblate list_machinery¶
Перечисляет сервисы автоматических предложений в reStructuredText как шаблон для Автоматические советы.
См. также
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.
Вы можете либо задать конкретный проект или компонент (например, weblate/application), либо использовать ключ --all, чтобы получить список всех переводчиков всех существующих компонентов.
list_versions¶
- weblate list_versions¶
Выводит список всех зависимостей weblate и их версии.
list_file_format_params¶
- weblate list_file_format_params¶
Перечисляет параметры формата файлов.
list_change_events¶
- weblate list_change_events¶
Перечисляет все возможные типы событий изменений.
list_format_features¶
- weblate list_format_features¶
Создаёт фрагменты документации RST, описывающие поддерживаемые функции для каждого формата файла.
Команда генерирует один файл для каждого формата, который можно найти в указанном выходном каталоге.
- --output PATH¶
Directory where the format feature snippets will be written.
Примечание
Сгенерированные файлы документации предназначены для включения в источники документации, такие как Форматы файлов локализации. См. также weblate/formats/management/commands/list_format_features.py для логики настройки и объединения.
loadpo¶
- weblate loadpo <project|project/component>¶
Перезагружает переводы с диска (например, если вы внесли обновления в свою систему контроля версий).
- --force¶
Force update, even if the files should be up-to-date.
- --lang LANGUAGE¶
Limit processing to a single language.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
Примечание
Вообще говоря, вам не часто придётся пользоваться данной командой: Weblate автоматически загружает изменившиеся файлы во время каждого обновления системы контроля версий. Однако, это может потребоваться, если вы вручную внесли изменения в репозиторий СКВ, управляемый Weblate, или в некоторых особых случаях после обновления.
lock_translation¶
- weblate lock_translation <project|project/component>¶
Запрещает последующий перевод компонента.
Подсказка
Эта команда бывает полезна, когда вы хотите провести какое-нибудь тех. обслуживание нижележащего репозитория.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
См. также
migrate¶
- weblate migrate¶
Переносит базу данных в текущую схему Weblate. Параметры командной строки описаны в Django migrate.
Подсказка
Если вы хотите запустить установку не в интерактивном режиме, вы можете использовать weblate migrate --noinput, а затем создать пользователя-администратора с помощью команды createadmin.
См. также
move_language¶
- weblate move_language source target¶
Позволяет объединять содержимое языков. Это полезно при обновлении до новой версии, которая содержит псевдонимы для ранее неизвестных языков, созданных с суффиксом (generated). Он перемещает всё содержимое из языка source в язык target.
Пример:
weblate move_language cze cs
После перемещения содержимого вам следует проверить, не осталось ли чего-либо (это подвержено состояниям гонки, если кто-то тем временем обновляет репозиторий) и удалить язык (generated).
pushgit¶
- weblate pushgit <project|project/component>¶
Отправляет закоммиченные изменения в вышестоящий репозиторий.
- --force-commit¶
Force commits any pending changes, prior to pushing.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
Примечание
Weblate автоматически отправляет изменения, если Отправлять при коммите в Настройки компонента включён, что установлено по умолчанию.
unlock_translation¶
- weblate unlock_translation <project|project/component>¶
Разблокировывает данный компонент, делая его доступным для перевода.
Подсказка
Эта команда бывает полезна, когда вы хотите провести какое-нибудь тех. обслуживание нижележащего репозитория.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
См. также
setupgroups¶
- weblate setupgroups¶
Задаёт группу по умолчанию и, опционально, переносит всех пользователей в эту группу.
- --no-privs-update¶
Turns off automatic updating of existing groups (only adds new ones).
- --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¶
Turns off automatic updates of existing languages (only adds new ones).
updatechecks¶
- weblate updatechecks <project|project/component>¶
Обновляет все проверки всех строк.
Подсказка
Полезна после обновлений Weblate, которые в значительной степени меняют проверки.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
Примечание
Проверки регулярно пересчитываются Weblate в фоновом режиме, частоту можно настроить с помощью BACKGROUND_TASKS.
updategit¶
- weblate updategit <project|project/component>¶
Извлекает изменения из удалённого репозитория системы контроля версий в локальный и обновляет внутренний кеш.
Вы можете либо задать конкретный проект или компонент для обновления (например, weblate/application), либо использовать ключ --all для обновления всех существующих компонентов.
Примечание
Обычно лучше настроить обработчики в репозитории для запуска Обработчики уведомлений вместо обычного запуска обновлений с помощью updategit.