翻译 res/values/strings.xml,然后检查每一行
Android 字符串包含类似 %1$s 和 %2$d 的位置说明符,以及类似 <b> 的标记。交换位置或删除标记会导致 getString() 显示错误值或崩溃。KAERIS 会翻译 strings.xml 并保留所有内容。
KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文
位置和标记保持不变
德语会移动数字;%2$d 会随之移动。
之前res/values/strings.xml
<resources> <string name="welcome">Welcome back, %1$s!</string> <string name="items_left">%2$d items left in stock</string> <string name="tap_continue">Tap <b>here</b> to continue</string> </resources>
之后res/values-de/strings.xml
<resources> <string name="welcome">Willkommen zurück, %1$s!</string> <string name="items_left">Noch %2$d Artikel auf Lager</string> <string name="tap_continue">Tippe <b>hier</b>, um fortzufahren</string> </resources>
KAERIS 的处理方式
每个
values-文件夹一个文件每种语言都会返回其自己的
strings.xml文件,用于values-de、values-ja等文件夹。变量在无 AI 的情况下进行检查
翻译后,简单的计数检查会将每个变量和标记与原始内容进行比较。丢失了任何变量的行将被标记并显示在顶部。
每一行都翻译回来
另一个模型 GPT-4o mini 会将每一行翻译回您的语言,然后 DeepSeek V3.2 在美国主机(DeepInfra、DigitalOcean、Google)上判断含义是否发生变化。您可以阅读每一行现在的含义。
问题
品牌名称可以保留英文吗?
可以。在要保留的词语下方列出它们,它们在每个 values- 文件夹中都将保持不变。
XML 可以安全解析吗?
可以。包含 DOCTYPE 或外部实体的文件将在解析前被拒绝。
免费吗?
是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格
我可以在终端或 CI 中运行它吗?
可以。pip install kaeris,然后使用您的文件和 --langs de,ja 运行 kaeris translate。当有新密钥时,GitHub Action 会打开一个 pull request。文档