Інтеграція із Weblate#

Основи Weblate#

Структура проєктів і складників#

У Weblate переклади упорядковано за проєктами та складниками. Кожен проєкт може містити декілька складників, які містять переклади окремими мовами. Складник відповідає одному файлу перекладу (наприклад, GNU Gettext або Рядкові ресурси Android). Проєкти призначено для полегшення упорядковування складників у логічні набори (наприклад, для групування усіх перекладів, які використовуються у одному застосунку).

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

Імпортування проєкту з локалізації до Weblate#

Weblate розроблено з урахуванням можливості інтеграції із системами керування версіями, як його основної можливості, тому найпростішим підходом до інтеграції є надання Weblate доступу до вашого репозиторію керування версіями. У процесі імпортування Weblate допоможе вам у налаштуванні складників із вашими перекладами.

Крім того, ви можете скористатися Weblate для налаштовування локального репозиторію, у якому міститимуться усі переклади, без інтеграції.

Отримання оновлень перекладів з Weblate#

Weblate зберігає оновлені рядки у базі даних і записує їх до локального сховища системи керування версіями. Ви можете додати сховище (якщо увімкнено Засіб експортування Git) як додаткове віддалене сховище і отримувати оновлення перекладів з нього.

До цього, можливо, вам варто внести всі зміни з черги (див. «Ліниві» внески). Це можна зробити за допомогою графічного інтерфейсу користувача (розділ Супровід репозиторію) або інтерфейсу командного рядка за допомогою Клієнт Weblate.

Запис змін можна автоматизувати, надавши Weblate доступ до запису до вашого репозиторію і налаштувавши адресу запису у складнику перекладу, див. Записування змін з Weblate.

Крім того, ви можете скористатися Програмний інтерфейс REST Weblate для оновлення перекладів у відповідності з найсвіжішою версією.

Отримання зовнішніх змін у Weblate#

Щоб отримати до Weblate рядки, які було оновлено у вашому репозиторії, просто надайте програмі можливість отримання даних з основного репозиторію. Це можна налаштувати за допомогою графічного інтерфейсу користувача (розділ Супровід репозиторію) або інтерфейсу командного рядка за допомогою Клієнт Weblate.

Процедуру можна автоматизувати за допомогою сценарію стеження за вашим репозиторієм, який викликатиме Weblate за кожного внеску, див. Оновлення репозиторіїв, щоб дізнатися більше.

Якщо ви не використовуєте інтеграцію із системою керування версіями, ви можете скористатися інтерфейсом користувача або Програмний інтерфейс REST Weblate для оновлення перекладів у відповідності зі змінами у вашому коді.

Додавання нових рядків#

Якщо ваші файли перекладу зберігаються в VCS разом з кодом, ви, швидше за все, маєте робочий простір для розробників, щоб ввести нові рядки. Яким би не був спосіб отримання доданих рядків, скористайтеся Шлюз якості для початкових рядків, щоб уникнути помилок.

Коли файли перекладу є окремими від коду, можна скористатися описаними далі способами, щоб ввести нові рядки у Weblate.

  • Власноруч, застосувавши :guilabel:` Додати новий рядок перекладу` з меню Засоби у розділі початкової мови.

  • Програмно, використовуючи API POST /api/translations/(string:project)/(string:component)/(string:language)/units/.

  • Завантаживши початковий файл як Замінити наявний файл перекладу (це замінює наявні рядки, тому переконайтесь, що файл містить як старі, так і нові рядки) або Додати нові рядки, перегляньте Способи імпортування.

Примітка

Доступність можливості додавати рядки у Weblate залежить від Керування рядками.

Оновлення файлів мови перекладу#

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

Крім того, Weblate не намагатиметься оновлювати двомовні файли у будь-який спосіб, тому якщо вам потрібне оновлення файлів po на основі pot, вам слід виконати оновлення власноруч за допомогою пункту Оновити рядки джерела Способи імпортування або за допомогою додатка Оновити файли po, порівнявши із pot (msgmerge).

Додавання нових рядків#

Ви можете додавати нові рядки у Weblate, якщо увімкнено Керування рядками. Втім, зазвичай, краще додавати нові рядки разом зі змінами у коді, які призводять до їхнього додавання.

Для одномовних форматів потрібне додавання нового рядка до Основний файл для одномовного перекладу. Типово, це має бути зроблено розробниками під час написання коду. Можливо, вам слід впровадити рецензування таких рядків за допомогою Шлюз якості для початкових рядків.

У двомовних форматах рядки, типово, видобуваються з початкового коду за допомогою певних інструментів. Скористайтеся документацією до вашої бібліотеки локалізації, щоб дізнатися більше про те, як це зробити. Після видобування рядків може знадобитися додатковий крок для оновлення наявних перекладів, див. Оновлення файлів мови перекладу.

Підказка

Вам варто інтегрувати цей крок до ваших конвеєрів обробки, щоб нові рядки з’являлися у перекладі автоматично. У такому конвеєрі слід передбачити можливість Уникання конфліктів об’єднання.

Керування репозиторієм керування версіями#

Weblate зберігає весь переклад репозиторію керування версіями. Він може бути або під’єднаний до основного віддаленого, або може бути тільки внутрішнім. За допомогою поля Супровід репозиторію ви можете керувати репозиторієм.

Підказка

За допомогою Безперервна локалізація до репозиторію автоматично надсилаються зміни щоразу, коли вони з’являються, і, як правило, нема потреби виконувати з ними дії власноруч.

../_images/component-repository.png