翻译

翻译您的 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 的处理方式

问题

复数形式更多的语言?

波兰语、俄语或阿拉伯语会获得它们所需的 ICU 分支,例如 few 和 many。

冗长的德语文本会破坏我的布局吗?

比该语言通常长度长很多的行会被标记出来,以便您可以检查它们所在的按钮。

免费吗?

是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格

如何将其集成到仓库中?

kaeris init --preset flutter-arb 会为 lib/l10n 写入设置,然后运行 kaeris translate 而无需任何标志。文档