GNU gettext PO (Portable Object)

翻译自由软件用得最广泛的格式。

支持通过调整文件标头或链接到相应的源文件,在文件中存储上下文信息。

Showing source string change

Weblate can extract previous source strings from the PO files if present and show the string difference for strings needing editing based on that. To include these, msgmerge has to be executed with --previous and the resulting PO file then contains lines such as:

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

PO 文件标头

PO 文件的标头由 Weblate 自动维护。可选地,它可以包含 源字符串缺陷报告地址设置 “Language-Team” 标头

单语 gettext

一些项目决定使用 gettext 作为单语格式 —— 它们仅在源代码中编码 ID,然后将字符串翻译成所有语言,包括英语。支持此功能,尽管在将部件导入 Weblate 时必须明确选择此文件格式。

示例文件

双语 gettext PO 文件通常如下所示:

#: 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ý"

单语言的 gettext PO 文件通常如下所示:

#: 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"

Weblate 配置

典型的 Weblate 双语 gettext 部件配置

文件掩码

po/*.po

单语言译文模版语言文件

新语种的翻译模版

po/messages.pot

文件格式

Gettext PO 文件

典型的 Weblate 单语 gettext 部件配置

文件掩码

po/*.po

单语言译文模版语言文件

po/en.po

新语种的翻译模版

po/messages.pot

文件格式

Gettext PO 文件(单语)