Интеграция с Weblate

Основы Weblate

Projects and components structure

Переводы в Weblate организованы по проектам и компонентам. Каждый проект может содержать несколько компонентов, а те — переводы на отдельные языки. Компоненту соответствует один переводимый файл (например, GNU gettext или Строковые ресурсы Android). Проекты служат для организации компонентов в логические наборы (например, для группировки всех переводов, используемых в одном приложении).

Internally, each project has translations to common strings propagated across other components within it by default. This lightens the burden of repetitive and multi version translation. The translation propagation can be disabled per Конфигурация компонента in case the translations should diverge.

Importing localization project into Weblate

Weblate was developed with VCS integration in mind. The easiest approach to integrate with it is to grant access to your VCS repository. The import process will guide you through configuring components with your translations.

In case you do not use VCS or do not want to grant access to your VCS at all, you can use Weblate without a remote VCS repository - it will create local repository with all the translations.

Получение из Weblate обновлений переводов

Для получения обновлённых строк из Weblate вы можете просто затянуть изменения из нижележащего репозитория (либо из файловой системы, либо его можно сделать доступным через Экспортер Git). До этого вы можете захотеть зафиксировать любые отложенные изменения (смотрите раздел Отложенные коммиты). Это можно сделать либо через пользовательский интерфейс (в разделе Обслуживание репозитория), либо из командной строки при помощи клиента Weblate.

This can be automated if you grant Weblate push access to your repository and configure URL для отправки в репозиторий in the Конфигурация компонента.

Отправка в Weblate изменений строк

Для отправки недавно обновлённые строки в Weblate, просто позвольте ему извлечь их из вышестоящего репозитория. Это можно сделать либо через пользовательский интерфейс (в разделе Обслуживание репозитория), либо из командной строки при помощи клиента Weblate.

Это действие можно автоматизировать путём установки в вашем репозитории веб-обработчика, запускающего Weblate по появлению нового коммита, подробнее смотрите в разделе Обновление репозиториев.

When not using a VCS integration, you can use UI or REST API Weblate’а to update translations to match your code base.

Adding new strings

In case your translation files are stored in VCS together with the code, you most likely have existing workflow for developers to introduce new strings. You might extend it by using Шлюз качества для исходных строк.

When the translation files are separate, there needs to be a way to introduce new strings. Weblate can add new strings on monolingual translations only (see Двуязычные и одноязычные форматы). You have three options to do that: