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

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

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

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

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

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

Это управляется параметром po_keep_previous Параметры формата файла. Это не влияет на устаревшие записи, отмеченные #~.

Устаревшие строки

msgmerge по умолчанию сохраняет строки, удалённые из POT-файла, как устаревшие записи #~. Включите параметр po_remove_obsolete Параметры формата файла, чтобы удалять устаревшие записи при сохранении PO-файлов Weblate.

Заголовок 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

Поддерживает удаление устаревших строк ⓘ

Yes

Поддерживаемые функции

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

.po, .pot

Языковость ⓘ

Двуязычный

Поддерживает множественное число ⓘ

Yes

Поддерживает описания ⓘ

Yes

Поддерживает пояснения ⓘ

No

Поддерживает контекст ⓘ

Yes

Поддерживает расположение ⓘ

Yes

Поддерживает флаги ⓘ

Yes

Дополнительные состояния ⓘ

Needs editing

Идентификатор API

po

Поддерживает строки только для чтения ⓘ

No

Поддерживает удаление устаревших строк ⓘ

Yes

Настройка Weblate

Типичный Настройки компонента Weblate для двуязычного gettext

Маска файла

po/*.po

Одноязычный базовый файл

Пусто

Шаблон для новых переводов

po/messages.pot

Формат файла

PO-файл gettext

Типичный Настройки компонента Weblate для одноязычного gettext

Маска файла

po/*.po

Одноязычный базовый файл

po/en.po

Шаблон для новых переводов

po/messages.pot

Формат файла

PO-файл gettext (одноязычный)

Параметры формата файла

Параметры формата файла с шаблоном po_* можно использовать для настройки поведения формата gettext.