翻译next-intl消息,然后检查每一行
next-intl消息是带有ICU语法的嵌套JSON:{count, plural, =0 {…} other {# items}}。日语只有一个复数形式,俄语有三个,而直接复制的某个分支会读错。KAERIS会逐个分支翻译messages/en.json,并保留命名空间。
KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文
ICU分支遵循目标语言
日语没有单数形式,因此one会合并到other中。{name}和#保持不变。
{
"HomePage": {
"title": "Welcome, {name}!",
"cartItems": "{count, plural, =0 {Your cart is empty} one {# item} other {# items}}"
}
}
{
"HomePage": {
"title": "ようこそ、{name}さん!",
"cartItems": "{count, plural, =0 {カートは空です} other {#点の商品}}"
}
}
KAERIS 的处理方式
保留命名空间
HomePage、Cart以及每个嵌套对象都将保持与源文件一致,为App Router的[locale]段做好准备。变量在无 AI 的情况下进行检查
翻译后,简单的计数检查会将每个变量和标记与原始内容进行比较。丢失了任何变量的行将被标记并显示在顶部。
每一行都翻译回来
另一个模型 GPT-4o mini 会将每一行翻译回您的语言,然后 DeepSeek V3.2 在美国主机(DeepInfra、DigitalOcean、Google)上判断含义是否发生变化。您可以阅读每一行现在的含义。
问题
select也可用吗?
是的。plural、select和selectordinal会保留其语法;只有分支内的文本会被翻译。
每个区域设置一个文件?
是的:messages/de.json、messages/ja.json等,符合next-intl的布局要求。
免费吗?
是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格
如何将其集成到仓库中?
kaeris init --preset next-intl会为messages/目录写入设置,然后kaeris translate无需任何参数即可运行。文档