Клиент Weblate

Добавлено в версии 2.7: Полная поддержка вспомогательной команды wlc существует с версии Weblate 2.7. Если вы используете более старую версию, могут возникнуть некоторые несовместимости с API.

Установка

Клиент Weblate поставляется отдельно и включает в себя Python’ий модуль. Для использования нижеприведённых команд необходимо установить модуль wlc:

pip3 install wlc

Начало работы

Конфигурация wlc хранится в ~/.config/weblate, пожалуйста, создайте её в соответствии со своим окружением:

[weblate]
url = https://hosted.weblate.org/api/

[keys]
https://hosted.weblate.org/api/ = APIKEY

После этого вы сможете вызывать команды на умолчательном сервере:

wlc ls
wlc commit sandbox/hello-world

Обзор

wlc [parameter] <command> [options]

Какая операция должна быть выполнена на самом деле указывает параметр command.

Описание

Weblate Client — это Python’ья библиотека и инструмент командной строки для удалённого управления Weblate с помощью его API. Инструмент командной строки может быть вызван как команда wlc, которая построена на основе модуля wlc.

Параметры для всего сайта

Программа принимает следующие параметры для всего экземпляра приложения, которые должны быть введены до какой-либо подкоманды.

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

Определяет формат вывода.

--url URL

Укажите URL-адрес API. Переопределяет любое значение, найденное в конфигурационном файле, смотрите раздел Файлы конфигурации. URL-адрес должен заканчиваться на /api/, например, https://hosted.weblate.org/api/.

--key KEY

Определяет пользовательский ключ API. Переопределяет любое значение, найденное в конфигурационном файле, смотрите раздел Файлы конфигурации. Свой ключ вы можете найти в своём профиле на Weblate.

--config 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

Добавлено в версии 0.7: Поддерживается с версии wlc 0.7.

Сбрасывает изменения в объекте Weblate (переводе, компоненте или проекте) для приведения их в соответствие с удалённым репозиторием.

cleanup

Добавлено в версии 0.9: Поддерживается с версии wlc 0.9.

Удаляет любые неотслеживаемые изменения в объекте Weblate (переводе, компоненте или проекте) для приведения их в соответствие с удалённым репозиторием.

repo

Отображает статус репозитория для данного объекта Weblate (перевода, компонента или проекта).

statistics

Отображает подробную статистику по данному объекту Weblate (переводу, компоненту или проекту).

lock-status

Добавлено в версии 0.5: Поддерживается с версии wlc 0.5.

Отображает статус блокировки.

lock

Добавлено в версии 0.5: Поддерживается с версии wlc 0.5.

Блокирует компонент в Weblate от дальнейшего перевода.

unlock

Добавлено в версии 0.5: Поддерживается с версии wlc 0.5.

Разблокирует перевод компонента Weblate.

changes

Добавлено в версии 0.7: Поддерживается с версии wlc 0.7 и Weblate 2.10.

Отображает изменения для данного объекта.

download

Добавлено в версии 0.7: Поддерживается с версии wlc 0.7.

Скачивает файл перевода.

--convert

Преобразовывает формат файла, если не указан, преобразования на сервере не происходит и файл скачивается в том виде, в котором он сохранён в репозитории.

--output

Указывает файл, в который нужно сохранить вывод, если не задать, вывод будет распечатан в стандартный поток вывода.

upload

Добавлено в версии 0.9: Поддерживается с версии wlc 0.9.

Загружает файл перевода.

--overwrite

Перезаписать существующие переводы во время загрузки.

--input

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

Файлы конфигурации

.weblate

Проектный файл конфигурации

~/.config/weblate

Пользовательский файл конфигурации

/etc/xdg/weblate

Системный файл конфигурации

Программа следует спецификации XDG, поэтому вы можете скорректировать пути размещения конфигурационных файлов переменными окружения XDG_CONFIG_HOME или XDG_CONFIG_DIRS.

Можно настроить следующие параметры, находящиеся в разделе [weblate] (изменить этот раздел вы можете ключом командной строки --config-section):

key

Ключ API для доступа к Weblate.

url

Адрес API сервера, по умолчанию установлен в http://127.0.0.1:8000/api/.

translation

Путь к переводу по умолчанию — компоненту или проекту.

Файл конфигурации является INI-файлом, например:

[weblate]
url = https://hosted.weblate.org/api/
key = APIKEY
translation = weblate/master

Дополнительно ключи API могут быть сохранены в разделе [keys]:

[keys]
https://hosted.weblate.org/api/ = APIKEY

Это позволяет вам сохранять ключи в ваших личных настройках, а конфигурацию .weblate в хранить в репозитории системы контроля версий, чтобы wlc знала, с каким сервером ей следует общаться.

Примеры

Печать текущей версии программы:

$ wlc version
version: 0.1

Список всех проектов:

$ wlc list-projects
name: Hello
slug: hello
source_language: en
url: http://example.com/api/projects/hello/
web: https://weblate.org/
web_url: http://example.com/projects/hello/

Также вы можете указать, с каким проектом должен работать wlc:

$ cat .weblate
[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/master

$ wlc show
branch: master
file_format: po
filemask: weblate/locale/*/LC_MESSAGES/django.po
git_export: https://hosted.weblate.org/git/weblate/master/
license: GPL-3.0+
license_url: https://spdx.org/licenses/GPL-3.0+
name: master
new_base: weblate/locale/django.pot
project: weblate
repo: git://github.com/WeblateOrg/weblate.git
slug: master
template:
url: https://hosted.weblate.org/api/components/weblate/master/
vcs: git
web_url: https://hosted.weblate.org/projects/weblate/master/

При такой настройке закоммитить отложенные изменения в текущем проекте проще простого:

$ wlc commit