支持文件类型 (Strings)

.PO - gettext files (Strings)

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

文件扩展名 

.po

API 扩展 

gettext

导入 

导出 

复数形式支持 

描述支持 

格式选项

  • msgid_as_default

  • is_bilingual_file

.PO(可移植对象)是本地化的标准文件格式;带有GNU gettext,是一个开源的GNU库,旨在简化本地化过程。使用 GNU gettext,Localizable Strings 从原文/源语代码中提取到 PO 文件中进行翻译。.PO 文件是一系列键-值对。键 msgid 是原文/源语字符串的放置位置,而值 msgstr 是Translatation。”

gettext 将原文/源语代码中的 Strings 提取到 a=%.POT(可移植对象模板)。根据定义的区域,gettext 然后将 .POT 文件转换为特定于区域的 .PO 文件,以上传至 OrchestratorCAT 工具进行翻译。翻译完成后,gettext 会将翻译后的 PO 文件转换为最终用于本地化的 .MO 文件(机器对象文件)。

.PO 文件和 .POT 文件相同,但 .POT 文件通常由 gettext 用于生成特定区域的 .PO 文件。直接翻译 .POT 文件并根据后续目标区域重命名不会产生问题。phrase 支持翻译:

  • PO 文件

  • 双语 PO 文件

  • .POT 文件 

  • 机器可读 .MO 文件

msgctxt 将作为键前缀,与 msgid 结合,并用 || 分隔。 

格式选项

标识符

msgid_as_default

类型

布尔值

上传

true

下载

false

默认

false

说明

msgid 值而不是 msgstr 中获取翻译内容

标识符

is_bilingual_file

类型

布尔值

上传

true

下载

false

默认

false

说明

将从上传的文件导入原文/源语和译文翻译:原文/源语内容将从msgid值提取,译文从msgstr值提取

代码示例

msgid ""
msgstr ""
"语言:English\n"
"MIME 版本:1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"内容传输编码:8bit\n"
"复数形式: nplurals=2; plural=(n !=1);\n"
"X 发电机:PhraseApp (phraseapp.com)\n"

"msgid""boolean_key"""
msgstr "--- true\n"

msgid "empty_string_translation"
msgstr ""

# 这是这个键的惊人描述!
msgid "key_with_description"
msgstr "看看!This key has a description!(At least in some formats)"

msgid "key_with_line-break"
msgstr "此翻译包含\na 换行符。"

msgid "nested.deeply.key"
msgstr "哇,这个键嵌套的更深。"key:"哇,这个键嵌套的更深"。

msgid "nested.key"
msgstr "此键嵌套在命名空间内。"key:"此键嵌套在命名空间内。"

msgid "null_translation"
msgstr ""

msgid "pluralized_key"
msgid_plural ""
msgstr[0] "只找到一个复数。"
msgstr[1]: "Wow, you have %s pluralizations!"

"msgid""sample_collection"""
"msgstr""---\n- first item\n- second item\n- third item\n"

"msgid""simple_key"""
msgstr "simple key, simple message, so simple.2" "Simple key, simple message, so simple.",

#,模糊匹配
msgid "unverified_key"
msgstr "我需要验证,请验证我!(In some formats we also export this status)"

典型的 gettext 条目: 

# 描述(可选)
msgid "key-name"
msgstr "我的翻译"

gettext 标题

gettext 文件的标题可以包含导入过程中提取的复数形式的区域名称和数据:

msgid ""
msgstr ""
"语言: en\n"
"MIME 版本:1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"内容传输编码:8bit\n"
"复数形式: nplurals=2; plural=(n !=1);\n"
"X 发电机:PhraseApp (phraseapp.com)\n"

描述

gettext 文件中的备注在导入时作为键描述添加:

# 这是我的描述
msgid "app_title"
msgstr "我的软件项目"

上下文

gettext 使用 msgctxt 表示法区分同一 msgid 的不同上下文。每个键名都必须是唯一的,因此 msgctxt 被添加为键名的第一部分,由两个管道符号分隔 ||

msgctxt "menu"
msgid“打开”
msgstr "我是翻译"

msgctxt "forum"
msgid“打开”
msgstr "我是其他翻译"

要将 msgctxt 添加到新键,请在键名之前添加:

my_context||my_key_name

结果 gettext 输出:

...
msgctxt "my_context"
msgid "my_key_name"
...

复数形式

gettext 支持复数形式的翻译:

msgid "new_messages"
msgid_plural ""
msgstr[0] "您有一条新消息"
msgstr[1] “您有 %{count} 条新消息”

模糊

模糊匹配的关键词用于译员验证。模糊匹配会自动调用 app 中的未验证流程。

#,模糊匹配
msgid "app_title"
msgstr "我的软件项目"
这篇文章有帮助吗?

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.