Клиент Weblate¶
Установка¶
Клиент Weblate поставляется отдельно и включает в себя модуль Python. Для использования нижеприведённых команд необходимо установить wlc используя pip:
pip install wlc
Вы также можете выполнить его напрямую с помощью uvx:
uvx wlc --help
Подсказка
Вы также можете использовать этот wlc как модуль Python, см. wlc.
Использование Docker¶
Клиент Weblate также доступен в виде образа Docker.
Этот образ публикуется на Docker Hub: https://hub.docker.com/r/weblate/wlc
Установка:
docker pull weblate/wlc
Контейнер Docker использует настройки по умолчанию Weblate и соединяется с API, развёрнутом на локальной машине. URL-адрес API и API_KEY можно настроить через параметры, принимаемые Weblate.
У команды запуска контейнера следующий синтаксис:
docker run --rm weblate/wlc [WLC_ARGS]
Пример:
docker run --rm weblate/wlc --url https://hosted.weblate.org/api/ list-projects
Возможно, вы захотите передать ваш Файлы настроек в контейнер Docker. Если ваш репозиторий содержит конфигурацию проекта, например .weblate, самый простой подход — добавить вашу текущую директорию как том /home/weblate:
docker run --volume $PWD:/home/weblate --rm weblate/wlc show
Начало работы¶
Самый простой способ начать — создать персональную конфигурацию wlc в ~/.config/weblate (полные правила обнаружения и другие расположения см. в Файлы настроек):
[weblate]
url = https://hosted.weblate.org/api/
[keys]
https://hosted.weblate.org/api/ = APIKEY
После этого вы сможете вызывать команды на умолчательном сервере:
wlc ls
wlc commit sandbox/hello-world
См. также
Устаревшая конфигурация¶
Изменено в версии 1.17: Устаревшая конфигурация с использованием key без области действия больше не поддерживается.
Миграция устаревшей конфигурации:
[weblate]
url = https://hosted.weblate.org/api
key = YOUR_KEY_HERE
В конфигурацию с ключом, ограниченным URL-адресом API:
[weblate]
url = https://hosted.weblate.org/api
[keys]
https://hosted.weblate.org/api = YOUR_KEY_HERE
Обзор¶
wlc [arguments] <command> [options]
Команды фактически указывают, какая операция должна быть выполнена.
Описание¶
Клиент Weblate — это библиотека Python и инструмент командной строки для удалённого управления Weblate с помощью его API REST для Weblate. Инструмент командной строки может быть вызван как wlc и встроен в wlc.
Аргументы¶
Программа принимает следующие аргументы, определяющие формат вывода или то, какой надо использовать экземпляр Weblate’а. Они должны быть введены до какой-либо команды.
- --format {csv,json,text,html}¶
Определяет формат вывода.
- --url URL¶
Задаёт URL-адрес API. Переопределяет любое значение, найденное в файле настроек, смотрите раздел Файлы настроек. URL-адрес должен заканчиваться на
/api/, например,https://hosted.weblate.org/api/.
- --key KEY¶
Задаёт пользовательский ключ API. Переопределяет любое значение из файла настроек, смотрите раздел Файлы настроек. Свой ключ вы можете найти в своём профиле на Weblate.
- --config PATH¶
Загружайте конфигурацию только из
PATHвместо обнаруженных глобальных и проектных файлов конфигурации, см. Файлы настроек.
- --config-section SECTION¶
Переопределяет используемый раздел файла настроек, смотрите раздел Файлы настроек.
Команды¶
Доступны следующие команды:
- version¶
Распечатать текущую версию.
- list-languages¶
Вывести список используемых в Weblate языков.
- list-projects¶
Вывести список существующих в Weblate проектов.
- list-components¶
Вывести список существующих в Weblate компонентов.
- list-translations¶
Вывести список существующих в Weblate переводов.
- show¶
Показать объект Weblate (перевод, компонент или проект).
- ls¶
Вывести список объектов Weblate (переводов, компонентов или проектов).
- commit¶
Зафиксировать изменения, внесённые в объект Weblate (перевод, компонент или проект).
- pull¶
Извлечь изменения из удалённого репозитория в объект Weblate (перевод, компонент или проект).
- push¶
Отправить изменения объекта Weblate (перевода, компонента или проекта) в удалённый репозиторий.
- reset¶
Сбросить изменения в объекте Weblate (переводе, компоненте или проекте) для приведения их в соответствие с удалённым репозиторием.
- cleanup¶
Удалить любые неотслеживаемые изменения в объекте Weblate (переводе, компоненте или проекте) для приведения их в соответствие с удалённым репозиторием.
- repo¶
Вывести статус репозитория для данного объекта Weblate (перевода, компонента или проекта).
- stats¶
Вывести подробную статистику по данному объекту Weblate (переводу, компоненту или проекту).
- lock-status¶
Вывести статус блокировки.
- lock¶
Заблокировать компонент в Weblate от дальнейшего перевода.
- unlock¶
Разблокировать перевод компонента Weblate.
- changes¶
Вывести список изменений для данного объекта.
- download¶
Скачать файл перевода.
- --convert¶
Преобразовывать формат файла; если не указан, то ни каких преобразований на стороне сервера не происходит и файл скачивается в том виде, в котором он сохранён в репозитории.
- --output¶
Задаёт файл, в который нужно сохранить файл перевода, если не указан, он будет распечатан в стандартный поток вывода.
- upload¶
Загрузить файл перевода.
- --overwrite¶
Перезаписывать существующие переводы во время загрузки.
- --input¶
Файл, из которого читается содержимое, если не указан, чтение будет производиться со стандартного потока ввода.
- --method¶
Используемый метод загрузки, смотрите Способы импорта.
- --fuzzy¶
Что делать с неточными, отмеченными на правку, переводами (пусто,
processилиapprove)
- --author-name¶
Имя автора, для замены авторизованного в данный момент пользователя
- --author-email¶
Электронная почта автора для переопределения текущей авторизации пользователя
Подсказка
Более подробную информацию по выполнению конкретных команд можно получить с помощью параметра --help, например, wlc ls --help.
Файлы настроек¶
Если указан --config, wlc загружает только этот файл.
Без --config wlc сначала загружает обнаруженный глобальный файл конфигурации из стандартных, зависящих от платформы мест:
C:\Users\NAME\AppData\Roaming\weblate.iniГлобальный файл конфигурации в Windows в роуминговом профиле.
C:\Users\NAME\AppData\Local\weblate.iniГлобальный файл конфигурации в Windows в локальном профиле.
~/.config/weblateГлобальный файл конфигурации на Unix-подобных системах.
/etc/xdg/weblateОбщесистемный резервный файл конфигурации.
Программа следует спецификации XDG, поэтому вы можете настроить размещение файлов конфигурации с помощью переменных окружения XDG_CONFIG_HOME или XDG_CONFIG_DIRS.
В Windows предпочтительными местами расположения файла настроек являются каталоги APPDATA и LOCALAPPDATA.
После загрузки глобальной конфигурации wlc загружает ближайший файл конфигурации проекта из текущего каталога или его родительских каталогов:
.weblate,.weblate.ini,weblate.iniФайл конфигурации проекта, размещённый в репозитории.
Загружается только ближайший файл конфигурации проекта. Файлы конфигурации в более удалённых родительских каталогах игнорируются.
Можно настроить следующие параметры, находящиеся в разделе [weblate] (изменить этот раздел вы можете ключом командной строки --config-section):
- key
Удалено в версии 1.17: Используйте раздел
[keys], чтобы указать ключи, ограниченные для отдельных URL-адресов API, см. Устаревшая конфигурация.
- url
Адрес API сервера, по умолчанию установлен
http://127.0.0.1:8000/api/.
- translation
Путь к переводу по умолчанию — компоненту или проекту.
- retries, timeout, allowed_methods, backoff_factor, status_forcelist
Необязательные настройки повторных попыток HTTP и тайм-аута, передаваемые в
urllib3. Используйтеallowed_methodsдля перечисления методов запроса, которые могут быть повторены. Текущие выпуски wlc используют это имя параметра вместо старой опцииmethod_whitelist.
Файл настроек является INI-файлом, например:
[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/application
retries = 3
allowed_methods = PUT,POST,GET
backoff_factor = 0.2
status_forcelist = 429,500,502,503,504
timeout = 30
Ключи API хранятся в разделе [keys]:
[keys]
https://hosted.weblate.org/api/ = APIKEY
Это позволяет вам хранить ключи в ваших личных настройках, используя конфигурацию .weblate в репозитории VCS, чтобы wlc знал, с каким сервером ему следует общаться. В CI храните в системе контроля версий только конфигурацию репозитория и вставляйте ключ API с помощью WLC_KEY.
Переменные окружения¶
Добавлено в версии 1.18.0.
URL-адрес API и ключ также можно настроить с помощью переменных окружения. Это особенно полезно для рабочих процессов CI, где репозиторий предоставляет конфигурацию проекта, а WLC_KEY вводится как секрет:
- WLC_URL¶
URL-адрес API
- WLC_KEY¶
API-ключ
Приоритет конфигурации (от высшего к низшему):
Примеры¶
Печать текущей версии программы:
$ wlc version
version: 0.1
Список всех проектов:
$ wlc list-projects
name: Hello
slug: hello
url: http://example.com/api/projects/hello/
web: https://weblate.org/
web_url: http://example.com/projects/hello/
Загрузить файл перевода:
$ wlc upload project/component/language --input /tmp/hello.po
Вы также можете указать, над каким проектом wlc должен работать:
$ cat .weblate
[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/application
$ wlc show
branch: main
file_format: po
source_language: en
filemask: weblate/locale/*/LC_MESSAGES/django.po
git_export: https://hosted.weblate.org/git/weblate/application/
license: GPL-3.0+
license_url: https://spdx.org/licenses/GPL-3.0+
name: Application
new_base: weblate/locale/django.pot
project: weblate
repo: git://github.com/WeblateOrg/weblate.git
slug: application
template:
url: https://hosted.weblate.org/api/components/weblate/application/
vcs: git
web_url: https://hosted.weblate.org/projects/weblate/application/
При такой настройке закоммитить отложенные изменения в текущем проекте проще простого:
$ wlc commit