Клієнт 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 і встановлює з’єднання із програмним інтерфейсом, який розгорнуто на локальному вузлі. 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: Застаріла конфігурація з використанням ключа без області видимості більше не підтримується.

Перенести застарілу конфігурацію:

[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 Client — це бібліотека Python та утиліта командного рядка для віддаленого керування Weblate за допомогою Програмний інтерфейс REST Weblate. Утиліту командного рядка можна викликати як wlc, вона вбудована в wlc.

Аргументи

Програма приймає вказані нижче аргументи, які визначають формат виведення даних або екземпляр Weblate, яким слід скористатися. Ці аргументи слід вводити перед будь-якою командою.

--format {csv,json,text,html}

Вказати формат виведення даних.

--url URL

Вказати адресу програмного інтерфейсу. Має вищий пріоритет за будь-яке значення, яке буде виявлено у файлі налаштувань, див. Файли налаштувань. Адреса має завершуватися /api/. Приклад: https://hosted.weblate.org/api/.

--key KEY

Вказати ключ до програмного інтерфейсу, яким слід скористатися. Має вищий пріоритет за будь-яке значення, яке буде виявлено у файлі налаштувань, див Файли налаштувань. Знайти ваш ключ можна у профілі на 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

Вказує файл для зберігання виведених даних. Якщо файл не вказано, дані буде виведено до стандартного виведення (stdout).

upload

Вивантажує файл перекладу.

--overwrite

Перезаписати наявні переклади під час вивантаження.

--input

Файл, з якого читатимуться дані. Якщо не вказано, дані буде прочитано зі stdin.

--method

Спосіб вивантаження, яким слід скористатися. Див. Способи імпортування.

--fuzzy

Обробка неточних (позначених для редагування) перекладів (empty, 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

Removed in version 1.17: Використовуйте розділ [keys], щоб вказати ключі, що використовуються для окремих URL-адрес API, див. Застаріла конфігурація.

url

Адреса сервера програмного інтерфейсу, типово, 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 у репозиторії системи контролю версій, щоб wlc знав, з яким сервером йому слід зв’язуватися. У CI зберігайте в системі контролю версій лише конфігурацію репозиторію, а API-ключ передавайте за допомогою WLC_KEY.

Змінні середовища

Added in version 1.18.0.

URL-адресу та ключ API також можна налаштувати за допомогою змінних середовища. Це особливо корисно для робочих процесів безперервної інтеграції (CI), де репозиторій містить конфігурацію проєкту, а змінна WLC_KEY вводиться як секретний параметр:

WLC_URL

Адреса API

WLC_KEY

Ключ до API

Порядок пріоритету параметрів конфігурації (від найвищого до найнижчого) такий:

  1. Аргументи командного рядка (--url, --key).

  2. Змінні середовища (WLC_URL, WLC_KEY).

  3. Конфігурація завантажується з --config або з виявленої глобальної конфігурації та найближчої конфігурації проекту, якщо --config не використовується.

Приклади

Вивести версію поточної програми:

$ 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