翻译

翻译 Flutter ARB 文件

ARB 文件是 JSON 格式,包含 ICU 消息和每个字符串旁边的 @key 元数据块。KAERIS 会翻译消息内容,保留元数据,并事后检查 ICU 语法。

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

ARB 文件结构

纯 JSON 格式。每条消息旁边都有一个 @message 条目,包含其描述和占位符类型;@@locale 指定语言。复数和选择项是 ICU 字符串:{count, plural, =0 {…} other {…}}。

源文件app_en.arb
{
  "@@locale": "en",
  "welcome": "Welcome back, {name}!",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": { "name": { "type": "String" } }
  },
  "itemCount": "{count, plural, =0{No items} one{{count} item} other{{count} items}}",
  "@itemCount": {
    "placeholders": { "count": { "type": "int" } }
  }
}

ARB 翻译注意事项

实际运行:翻译为德语并进行检查

实际运行,27 October 2026,未手动编辑:kaeris translate app_en.arb --langs de,使用 kaeris 0.2.35,耗时 2.7 秒,模型 google/gemini-2.5-flash-lite,免费套餐默认选项。下方是它生成的德语文件以及 kaeris check 的检查结果。

德语结果app_de.arb
{
  "@@locale": "de",
  "welcome": "Willkommen zurück, {name}!",
  "itemCount": "{count, plural, =0{Keine Artikel} one{{count} Artikel} other{{count} Artikel}}",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": {
      "name": {
        "type": "String"
      }
    }
  },
  "@itemCount": {
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  }
}
kaeris 检查exit code 0
$ kaeris check --source app_en.arb --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

KAERIS 的处理方式

分三步运行

  1. 安装 CLI

    运行 pip install kaeris。

  2. 翻译模板文件

    运行 kaeris translate lib/l10n/app_en.arb --langs de,ja。

  3. 检查结果

    运行 kaeris check,提供源文件和 --pattern 'app_{lang}.arb';如果变量或 ICU 块损坏,则退出码为 1。

pip install kaeris
kaeris init --preset flutter-arb
kaeris translate lib/l10n/app_en.arb --langs de,ja --verify
kaeris check --source lib/l10n/app_en.arb --langs de,ja --pattern 'app_{lang}.arb'

问题

@metadata 条目会被保留吗?

是的。描述和占位符类型会保留在每条消息旁边;@@locale 会根据目标语言重写。

如果翻译中的 ICU 复数形式不正确怎么办?

检查会将 ICU 块与源文件进行比较,并指出问题,例如丢失的 =0 分支。在实际运行中,复数形式返回时包含了所有三个分支,因此检查没有报告任何问题。

免费吗?

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

我可以在终端或 CI 中运行它吗?

是的。运行 pip install kaeris,然后运行 kaeris translate lib/l10n/app_en.arb --langs de,ja。另请参阅 Flutter。GitHub Action 在拉取请求中运行相同的翻译。 CLI 文档 · GitHub Action

继续

CLI 参考 · 检查参考 · 在浏览器中翻译 · 免费检查 · 格式转换 · 伪本地化

其他格式:JSON · YAML · .po · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML