翻译

翻译 gettext .po 文件

一个 .po 文件是文本键值对:英文句子是键。上下文、复数形式和 Python 风格的变量都围绕着这些文本。KAERIS 会保留它们,并为目标语言写入所需的复数形式。

KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文

.po 文件是如何构建的

每个条目都有一个 msgid(源文本)和一个 msgstr(翻译)。msgctxt 用于区分两个相同的句子。复数形式使用 msgid_plural 和每个形式的一个 msgstr[n],并且头部文件中的 Plural-Forms 行说明了该语言有多少种形式。

源文件en.po
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: app/views.py:12
msgid "Welcome back, %(name)s!"
msgstr ""

#: app/views.py:20
msgid "%(count)d file"
msgid_plural "%(count)d files"
msgstr[0] ""
msgstr[1] ""

msgctxt "menu"
msgid "Open"
msgstr ""

msgctxt "verb"
msgid "Open"
msgstr ""

.po 翻译中需要注意的事项

实际运行:翻译为德语并进行检查

实际运行,27 October 2026,未手动编辑:kaeris translate en.po --langs de 使用 kaeris 0.2.35,耗时 3.9 秒,模型 google/gemini-2.5-flash-lite,免费套餐默认模型。下方是它生成的德语文件以及 kaeris check 的检查结果。

德语结果de.po
# Generated by KAERIS i18n Tool
# Language: de
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de\n"

msgid "Welcome back, %(name)s!"
msgstr "Willkommen zurück, %(name)s!"

msgid "%(count)d file"
msgid_plural "%(count)d files"
msgstr[0] "%(count)d Datei"
msgstr[1] "%(count)d Dateien"

msgctxt "menu"
msgid "Open"
msgstr "Öffnen"

msgctxt "verb"
msgid "Open"
msgstr "Öffnen"
kaeris 检查exit code 0
$ kaeris check --source en.po --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

KAERIS 的处理方式

分三步运行

  1. 安装 CLI

    运行 pip install kaeris。

  2. 翻译目录文件

    运行 kaeris translate django.po --langs de,ja。输出文件名按语言命名。

  3. 检查结果

    在免费检查页面上传源文件和翻译后的 .po 文件,以查看丢失的变量和不一致的术语。

pip install kaeris
kaeris translate locale/en/LC_MESSAGES/django.po --langs de,ja --verify

问题

它能处理俄语或阿拉伯语的复数形式吗?

复数头部和 msgstr[n] 插槽的数量会根据目标语言写入。在俄语运行中,示例源生成了 nplurals=3 和三个插槽。

msgctxt 呢?

上下文会附加到条目上,因此具有不同上下文的两个相同源是不同的字符串。当它们返回不同的翻译时,检查会发出警告。

免费吗?

是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格

我可以在终端或 CI 中运行它吗?

是的。运行 pip install kaeris,然后运行 kaeris translate django.po --langs de,ja。另请参阅 Django。GitHub Action 会在拉取请求中运行相同的翻译。 CLI 文档 · GitHub Action

继续

CLI 参考 · 检查参考 · 在浏览器中翻译 · 免费检查 · 格式转换 · 伪本地化

其他格式: JSON · YAML · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML