GNU gettext PO (портативний об’єкт)¶
Найпоширеніший формат для перекладу вільного програмного забезпечення.
Підтримку контекстних даних, які зберігаються у файлі, реалізовано коригуванням його заголовків та прив’язкою до відповідних файлів початкового коду.
Дивись також
Показ змін у початкових рядках¶
Weblate може витягувати попередні вихідні рядки з PO-файлів, якщо вони є, і на основі цього показувати різницю рядків, які потребують редагування. Щоб включити їх, msgmerge має бути виконано з --previous і отриманий PO-файл буде містити такі рядки, як:
#, fuzzy
#| msgid "previous-untranslated-string"
msgid "untranslated-string"
msgstr "translated-string"
Заголовок файла PO¶
The header of the PO file is automatically maintained by Weblate.
It can be configured to include the Language-Team, Last-Translator,
X-Generator and Report-Msgid-Bugs-To headers using the Параметри формату файлу.
Коментарі до заголовка також можна оновити, щоб вони містили імена авторів, використовуючи Перекладачі в коментарі.
Перенесення рядків¶
Перенесення рядків здебільшого відповідає поведінці GNU gettext. Як алгоритм перенесення в GNU gettext, так і дані Unicode, на яких базується перенесення, evolve, що може спричиняти відмінності в деяких критичних випадках.
Ширину обтікання можна налаштувати за допомогою параметра po_line_wrap, див. Параметри формату файлу.
Генерація відповідних MO-файлів¶
Якщо MO-файли зберігаються в репозиторії разом із PO-файлами, можна використовувати Генерувати mo-файли для їх оновлення разом із PO-файлами.
Оновлення PO-файлів з POT-файлу¶
Оновити файли po, порівнявши із pot (msgmerge) можна використовувати для оновлення PO-файлів з POT-файлу, див. Оновлення файлів мови перекладу.
Одномовний gettext¶
У деяких проєктах розробники використовують gettext як одномовний формат — у початковому коді є лише ідентифікатори, а рядок має бути перекладено усіма мовами, зокрема і англійською. Підтримку таких форматів передбачено, але цей формат слід вибрати явним чином при імпортуванні складників до Weblate.
Файли прикладів¶
Типовий двомовний файл PO gettext виглядає ось так:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Monday"
msgstr "Pondělí"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Tuesday"
msgstr "Úterý"
#: weblate/accounts/avatar.py:163
msgctxt "No known user"
msgid "None"
msgstr "Žádný"
Типовий одномовний файл PO gettext виглядає ось так:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Pondělí"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Úterý"
#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "Žádný"
А базовий мовний файл ось такий:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Monday"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Tuesday"
#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "None"
Розширення файлів |
|
|---|---|
Мовна різноманітність ⓘ |
Одномовний |
Підтримує множину: ⓘ |
|
Підтримує описи ⓘ |
|
Підтримує пояснення ⓘ |
|
Підтримує контекст ⓘ |
|
Підтримує розташування ⓘ |
|
Підтримує прапорці ⓘ |
|
Додаткові стани ⓘ |
|
Ідентифікатор API |
|
Підтримує рядки, доступні лише для читання ⓘ |
|
Розширення файлів |
|
|---|---|
Мовна різноманітність ⓘ |
Двомовний |
Підтримує множину: ⓘ |
|
Підтримує описи ⓘ |
|
Підтримує пояснення ⓘ |
|
Підтримує контекст ⓘ |
|
Підтримує розташування ⓘ |
|
Підтримує прапорці ⓘ |
|
Додаткові стани ⓘ |
|
Ідентифікатор API |
|
Підтримує рядки, доступні лише для читання ⓘ |
|
Налаштування Weblate¶
Типово Налаштовування складників Weblate для двомовних gettext |
|
|---|---|
Маска файлів |
|
Основний файл для одномовного перекладу |
Порожньо |
Шаблон для нових перекладів |
|
Формат файлу |
файл PO Gettext |
Типово Налаштовування складників Weblate для одномовних gettext |
|
|---|---|
Маска файлів |
|
Основний файл для одномовного перекладу |
|
Шаблон для нових перекладів |
|
Формат файлу |
файл PO Gettext (одномовний) |
Параметри формату файлу¶
Параметри формату файлу за допомогою шаблону po_* можна налаштувати поведінку формату gettext.