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"
Підтримувані можливості

Розширення файлів

.po, .pot

Мовна різноманітність

Одномовний

Підтримує множину:

Yes

Підтримує описи

Yes

Підтримує пояснення

No

Підтримує контекст

Yes

Підтримує розташування

Yes

Підтримує прапорці

Yes

Додаткові стани

Needs editing

Ідентифікатор API

po-mono

Підтримує рядки, доступні лише для читання

No

Підтримувані можливості

Розширення файлів

.po, .pot

Мовна різноманітність

Двомовний

Підтримує множину:

Yes

Підтримує описи

Yes

Підтримує пояснення

No

Підтримує контекст

Yes

Підтримує розташування

Yes

Підтримує прапорці

Yes

Додаткові стани

Needs editing

Ідентифікатор API

po

Підтримує рядки, доступні лише для читання

No

Налаштування Weblate

Типово Налаштовування складників Weblate для двомовних gettext

Маска файлів

po/*.po

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

Порожньо

Шаблон для нових перекладів

po/messages.pot

Формат файлу

файл PO Gettext

Типово Налаштовування складників Weblate для одномовних gettext

Маска файлів

po/*.po

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

po/en.po

Шаблон для нових перекладів

po/messages.pot

Формат файлу

файл PO Gettext (одномовний)

Параметри формату файлу

Параметри формату файлу за допомогою шаблону po_* можна налаштувати поведінку формату gettext.