翻訳

FlutterのARBファイルを翻訳する

.arbファイルはICUメッセージと各文字列の隣にある@keyメタデータブロックを含むJSONです。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翻訳で注意すべき点

実際の実行例:ドイツ語に翻訳しチェック

実際の実行例、2026年10月27日、手動編集なし: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 が行うこと

3ステップで実行する

  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分岐の欠落などです。上記の実際の実行では複数形は3つの分岐すべてが戻り、チェックは問題を報告しませんでした。

無料ですか?

はい、アカウントなしで:ファイルあたり 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