文件导入设置

.PO - gettext (TMS)

文本由 Phrase Language AI 从英语机器翻译而得。

PO gettext 是一个国际化和本地化 (i18n) 系统,通常用于在类 Unix 计算机操作系统上编写多语言程序。

识别同一原文时,QA 检查只考虑上下文键。

有效的 .PO 文件是双语的,其中 msgid 包含源文本,msgstr 包含目标文本。

示例:

#: src/name.c:36
msgid “我的名字是 %s.\n”
msgstr "Je m'appelle %s.\n"

文件类型

  • .PO

支持的占位符格式

  • c 格式

  • objc 格式

  • sh 格式

  • python 格式

  • python-brace-format

  • elisp-format

  • librep-format

  • scheme-format

  • smalltalk-format

  • java-format

  • csharp-format

  • awk-format,

  • object-pascal-format

  • ycp 格式

  • tcl格式

  • perl 格式

  • 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 信息会自动转换为标记。带有 ICU 消息的文件不能包含任何行内元素。

  • 导出多行字符串

    默认选中,通过在导出的 .PO 文件中添加实际的换行符,改进了对 \n 个标记的 .PO 文件的处理。

  • 转换为 Phrase TMS 标记 

    应用正则表达式将指定文本转换为标记。

  • 句段 PO

    分割规则将用于分割源元素和目标元素中的文本。

  • 使用 HTML 子过滤器 

    导入文件中包含的 HTML 标记。然后,标记可以与 .HTML 文件导入设置一起使用。

  • 将上下文键设置为

    选择将附加到 msgstr 并作为上下文保存到 TM 的附加上下文字符串信息。

  • 译行内元素=%-=%非译行内元素

    子筛选字段,用于指定哪些元素将被转换为标记并被视为可译元素或非译元素。

  • 导入句段规则

    根据模糊或非模糊设置确认。

  • 导出属性映射

    根据模糊或非模糊状态设置导出属性。

复数形式

PO Gettext 允许本地化复数形式

PO GNU Gettext 仅支持带整数的复数形式。不支持1.5分等十进制数字形式。

  • 原始文件必须包含 msgid_plural 字符串以及单数 msgid

  • 文件标题中定义的复数规则规范(公式)用于生成复数形式。如果没有这样的规范,工作导入将使用基于目标语言的标准 Unicode CLDR 复数规则

  • 文件必须与句段密钥上下文一起导入才能正常使用复数功能。

  • 译文区域和句段的复数形式将作为句段的上下文键并保存到 TM

  • 如果字符串 msgctxt 存在于原始文件中,则会添加到句段的上下文键并保存到翻译记忆库。它也显示在上下文注释窗口中。如果 msgctxt 为空,则仅使用并保存 msgstr 关键字。

示例 1. PO Gettext 文件中未指定的复数

如果导入德语和阿拉伯语,德语的目标文件将只有两个复数形式,而阿拉伯语的目标文件将有六个。将自动为每个目标语言使用正确的复数规则,并将工作导入特定语言的复数形式。

msgid ""
msgstr ""
"MIME 版本:1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"内容传输编码:8bit\n"

#:ui/gui/409
msgctxt “GUI|安装”
msgid “%d _存储设备已选择”
msgid_plural "%d _storage devices selected" 

示例 2. 标题中为捷克语指定的复数规则

即使导入德语或阿拉伯语,该文件也将始终有 3 个复数形式。

msgid ""
msgstr ""
"MIME 版本:1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"内容传输编码:8bit\n"
"复数形式: n复数=3; 复数=(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] "" 

这篇文章有帮助吗?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.