翻译

翻译next-intl消息,然后检查每一行

next-intl消息是带有ICU语法的嵌套JSON:{count, plural, =0 {…} other {# items}}。日语只有一个复数形式,俄语有三个,而直接复制的某个分支会读错。KAERIS会逐个分支翻译messages/en.json,并保留命名空间。

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

ICU分支遵循目标语言

日语没有单数形式,因此one会合并到other中。{name}和#保持不变。

之前messages/en.json
{
  "HomePage": {
    "title": "Welcome, {name}!",
    "cartItems": "{count, plural, =0 {Your cart is empty} one {# item} other {# items}}"
  }
}
之后messages/ja.json
{
  "HomePage": {
    "title": "ようこそ、{name}さん!",
    "cartItems": "{count, plural, =0 {カートは空です} other {#点の商品}}"
  }
}

KAERIS 的处理方式

问题

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无需任何参数即可运行。文档