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

Основи Weblate

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

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

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

Інтеграція зі сховищем

Weblate побудовано з врахуванням інтеграції із основним сховищем системи керування версіями коду, у розділі:doc:/admin/continuous описано будівельні блоки та те, як зміни переходять з одного блоку до іншого.

Дивись також

Огляд архітектури описує те, як Weblate працює на внутрішньому рівні.

Прив’язка до користувача

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

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

Отже, адміністраторам слід брати до уваги таке під час налаштовування Weblate:

  • Таке використання адреси електронної пошти має бути ясно описано в умовах користування послугами, якщо такий документ потрібний. З цим може допомогти розділ Правові відомості.

  • PRIVATE_COMMIT_EMAIL_OPT_IN може зробити адреси електронної пошти типово конфіденційними.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примітка

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

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

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

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

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

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

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

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

Підказка

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

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

Керування сховищем керування версіями

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

Підказка

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

../_images/component-repository.webp