GNU gettext PO (переносимый объект)

Самый широкоиспользуемый формат для перевода свободного програмного обеспечения.

Контекстная информация, хранящаяся в файле, поддерживается настройкой его заголовков или его привязкой к соответствующим исходным файлам.

Отображение изменения исходной строки

Weblate может извлекать предыдущие исходные строки из PO-файлов, если они присутствуют, и показывать разницу строк для строк, требующих редактирования, на основе этого. Чтобы включить их, msgmerge должен быть выполнен с параметром --previous, и тогда результирующий PO-файл будет содержать строки, подобные следующим:

#, fuzzy
#| msgid "previous-untranslated-string"
msgid "untranslated-string"
msgstr "translated-string"

Заголовок PO-файла

Заголовок PO-файла автоматически поддерживается Weblate. Его можно настроить на включение заголовков Language-Team, Last-Translator, X-Generator и Report-Msgid-Bugs-To с помощью Параметры формата файла.

Комментарии заголовка также можно обновить, чтобы они содержали имена авторов, с помощью Участники в комментарии.

Перенос строк

Перенос строк в основном соответствует поведению GNU gettext. Как алгоритм переноса в GNU gettext, так и данные Юникода, на которых основан перенос, развиваются, что может вызывать различия в некоторых граничных случаях.

Ширину переноса можно настроить с помощью параметра 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.