GNU gettext PO (Portable Object)

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

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

显示源字符串更改

如果存在 PO 文件,Weblate 可以从这些文件中提取先前的源字符串并基于此显示需要编辑字符串的字符串区别。要包含这些,必须使用 --previous 参数运行 msgmerge,由此生成的 PO 文件会包括特定的行,比如:

#, 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 文件(单语)