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

Основи Weblate

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

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

Крім того, складники в проєктах можуть бути структуровані за допомогою категорій. Складники можуть належати до категорії, а категорії можуть бути вкладеними.

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

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

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

Дивись також

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

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

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

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

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

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

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

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

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

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

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

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

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

Pushing changes can be automated if you grant Weblate push access to your repository and configure Адреса для записування до сховища in the Налаштовування складників, see Записування змін з Weblate.

Крім того, використовуйте Програмний інтерфейс REST Weblate для оновлення перекладів, щоб вони відповідали найновішій версії з висхідного потоку у вашому віддаленому сховищі VCS.

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

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

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

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

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

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

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

  • Вручну, використовуючи Add new translation string з меню Operations мовою оригіналу. Ви можете вибрати між радіокнопками Singular та Plural всередині форми. Виберіть відповідну форму нового рядка перекладу, який потрібно додати.

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

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

Примітка

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

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

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

Weblate також не намагатиметься оновлювати двомовні файли, коли змінюється джерело, тому, якщо вам потрібно оновити файли po з pot, у вас є два варіанти:

  • Автоматично за допомогою додатка (рекомендується для постійних оновлень): Встановіть додаток Оновити файли po, порівнявши із pot (msgmerge), який автоматично запускає msgmerge для оновлення всіх PO-файлів при кожній зміні POT-файлу.

  • Вручну через завантаження: Використовуйте метод Update source strings Способи імпортування для завантаження вашого POT-файлу, що об’єднає його з існуючими перекладами.

Підказка

Інструменти вилучення вихідних рядків, такі як xgettext або lupdate, потрібно запускати за межами Weblate.

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

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

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

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

Підказка

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

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

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

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

Підказка

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

../_images/component-repository.webp