翻译 django.po,然后检查每一行
makemessages 使用 %(name)s 变量和复数条目编写 locale/en/LC_MESSAGES/django.po。翻译 %(name)s 或删除它,模板就会引发错误或显示为空。KAERIS 会填充每个 msgstr 并按 Django 期望的方式保留变量。
KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文
%(name)s 保持原样
每个 msgid 都有其 msgstr;标头包含目标语言的 Language 和复数规则。
msgid "Welcome back, %(name)s!"
msgstr ""
msgid "Save changes"
msgstr ""
msgid "Welcome back, %(name)s!" msgstr "Willkommen zurück, %(name)s!" msgid "Save changes" msgstr "Änderungen speichern"
KAERIS 的处理方式
每种语言的复数形式
ngettext条目会获得目标语言所需的msgstr形式:俄语需要三种,中文需要一种。变量在无 AI 的情况下进行检查
翻译后,简单的计数检查会将每个变量和标记与原始内容进行比较。丢失了任何变量的行将被标记并显示在顶部。
每一行都翻译回来
另一个模型 GPT-4o mini 会将每一行翻译回您的语言,然后 DeepSeek V3.2 在美国主机(DeepInfra、DigitalOcean、Google)上判断含义是否发生变化。您可以阅读每一行现在的含义。
问题
之后我该运行什么?
将文件放入 locale/<lang>/LC_MESSAGES/ 并像往常一样运行 compilemessages。
是否保留 msgctxt?
是的。文本相同但上下文不同的条目将保持独立。
免费吗?
是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格
我可以在终端或 CI 中运行它吗?
可以。pip install kaeris,然后使用您的文件和 --langs de,ja 运行 kaeris translate。当有新密钥时,GitHub Action 会打开一个 pull request。文档