PO gettext 是一种国际化和本地化 (i18n) 系统,通常用于在类Unix操作系统上编写多语言程序。
在识别相同源时,QA check 仅考虑上下文键。
有效的 .PO 文件是双语的,其中 msgid 包含源文本,而 msgstr 包含目标文本。
示例:
#: src/name.c:36 msgid "我的名字是 %s.\n" msgstr "我叫 %s.\n"
文件类型
-
.PO
支持的占位符格式
-
c-format
-
objc-format
-
sh格式
-
python-format
-
python-brace-format
-
elisp-format
-
librep-format
-
scheme-format
-
smalltalk-format
-
java-format
-
csharp-format
-
awk格式,
-
object-pascal-format
-
ycp-format
-
tcl-format
-
perl-format
-
perl-brace-format
-
php格式,
-
gcc-internal-format
-
gfc-internal-format
-
qt-format
-
qt-plural-format
-
kde-format
-
boost-format
-
lua-format
-
javascript-format
导入选项
-
ICU 信息会自动转换为标签。当一个句段包含内联元素时,该句段的 ICU 解析将被跳过。没有内联元素的句段将正常解析。
-
默认选中,并通过在导出的 .PO 文件中添加实际换行符来改善对带有
\n标签的 .PO 文件的处理。 -
将使用 断句规则 来对源和目标元素中的文本进行分段。
-
导入文件中包含的 HTML 标签。在这种情况下,标签可用于 .HTML 文件导入设置。
-
应用 正则表达式 将指定文本转换为标签。
-
如果启用,PO 文件头中的
语言和复数形式条目将被作业的目标语言值覆盖。如果原始 PO 文件中不存在复数形式,则在完成的文件中为目标构建。 -
选择附加的上下文键信息,这些信息将附加到msgstr并保存为上下文到TM。
-
根据模糊或非模糊设置确认。
-
根据模糊或非模糊状态设置导出属性。
复数形式
PO Gettext允许对复数形式进行本地化。
PO GNU Gettext仅支持带有整数的复数形式。不支持诸如1.5分的十进制数字形式。
-
原始文件必须包含msgid_plural字符串以及单数msgid。
-
文件头中定义的复数规则规范(公式)用于生成复数形式。如果没有这样的规范,将使用基于目标语言的标准Unicode CLDR复数规则进行作业导入。
-
文件必须与句段键上下文一起导入,以便正确使用复数功能。
-
目标区域和句段的复数形式将作为句段的上下文键使用,并保存到TM中,
-
如果原始文件中存在字符串msgctxt,则将其添加到句段的上下文键中并保存到TM。它也将在上下文注释窗口中显示。如果msgctxt为空,则仅使用并保存msgstr关键字。
如果导入到德语和阿拉伯语,德语目标文件将只有两种复数形式,而阿拉伯语目标文件将有六种。每种目标语言将自动使用正确的复数规则,工作将以特定语言的复数形式导入。
msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #:ui/gui/409 msgctxt "GUI|安装" msgid "%d _存储设备已选择" msgid_plural "%d _存储设备已选择"
即使导入到德语或阿拉伯语,此文件也将始终具有3种复数形式。
msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ?0 : n>=2 && n<=4 ?1 : 2);\n""语言: cs\n" #:ui/gui/409 msgctxt "GUI|安装" msgid "%d _存储设备已选择" msgid_plural "%d _storage devices selected" msgstr[0] ""msgstr[1] ""msgstr[2] ""