翻译您的 Flutter .arb 文件,然后检查每一行
Flutter 应用将其文本保存在 lib/l10n/app_en.arb 中:ICU 复数、{name} 占位符和 @key 元数据。一个花括号错误就会导致 flutter gen-l10n 停止。KAERIS 会生成 app_de.arb、app_ja.arb 等文件,并保持语法完整。
KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文
保留元数据,设置 @@locale
描述和占位符类型会被复制;复数分支中的文本会被翻译。
之前lib/l10n/app_en.arb
{
"@@locale": "en",
"welcome": "Welcome back, {name}!",
"cartItemCount": "{count, plural, one{You have {count} item} other{You have {count} items}}",
"@cartItemCount": {
"description": "Shown on the cart screen",
"placeholders": { "count": { "type": "int" } }
}
}
之后lib/l10n/app_de.arb
{
"@@locale": "de",
"welcome": "Willkommen zurück, {name}!",
"cartItemCount": "{count, plural, one{Du hast {count} Eintrag} other{Du hast {count} Einträge}}",
"@cartItemCount": {
"description": "Shown on the cart screen",
"placeholders": { "count": { "type": "int" } }
}
}
KAERIS 的处理方式
准备好用于 gen-l10n
每个语言对应一个 .arb 文件,放在模板旁边,每个文件都设置了
@@locale。变量在无 AI 的情况下进行检查
翻译后,简单的计数检查会将每个变量和标记与原始内容进行比较。丢失了任何变量的行将被标记并显示在顶部。
每一行都翻译回来
另一个模型 GPT-4o mini 会将每一行翻译回您的语言,然后 DeepSeek V3.2 在美国主机(DeepInfra、DigitalOcean、Google)上判断含义是否发生变化。您可以阅读每一行现在的含义。
问题
复数形式更多的语言?
波兰语、俄语或阿拉伯语会获得它们所需的 ICU 分支,例如 few 和 many。
冗长的德语文本会破坏我的布局吗?
比该语言通常长度长很多的行会被标记出来,以便您可以检查它们所在的按钮。
免费吗?
是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格
如何将其集成到仓库中?
kaeris init --preset flutter-arb 会为 lib/l10n 写入设置,然后运行 kaeris translate 而无需任何标志。文档