KAERIS i18n について
KAERIS i18nは、アプリの文字列をローカライズし、翻訳の不足を確認する開発者向けMCPサーバーです。46言語に対応し、プレースホルダーや書式を検査するほか、ロックファイルで増分翻訳の再現性を保ちます。
主な機能
- 01リポジトリのi18n設定をスキャン
- 02言語の網羅性と書式の問題を確認
- 03不足または不正なキーを一覧表示
- 04文字列と複数形式のファイルを翻訳
- 05kaeris.lockで増分翻訳を記録
- 06プレースホルダー欠落とUIの文字あふれを検出
活用シーン
- 01リポジトリ内の不足キーを特定
- 02追加文字列を対象言語に翻訳
- 03プロジェクトに新しいロケールを追加
- 04CIでのマージ前に翻訳品質を確認
MCP 対応
MCPクライアントに、リポジトリのスキャン、翻訳状況の確認、不足キーの検索、翻訳ツールを提供します。最初の3つのローカル検査はAPIを呼び出さず、翻訳操作ではKAERIS APIを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx kaeris-mcpKAERIS_API_KEYシークレットKAERIS API key (optional; the free demo works without one)KAERIS_OPENROUTER_KEYシークレットOpenRouter key for the Lifetime (BYOK) plan (optional)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
KAERIS i18n — MCP サーバー
Model Context Protocol を活用した、AI ネイティブなローカライズです。Claude Desktop、Cursor、 Claude Code(または任意の MCP クライアント)で、46 言語へのアプリ文字列の翻訳が可能になります。プレースホルダーを保持し、フォーマットを認識し、差分翻訳に対応。Translation QA も組み込まれています。
ツール
| ツール | 機能 | API を呼び出しますか? |
|---|---|---|
kaeris_scan_repo | リポジトリの i18n 設定を検出します。見つかったロケールファイル、ベース言語、翻訳先言語、フレームワークの推定結果(i18next/next-intl/vue-i18n/Flutter/Android/iOS/gettext/generic)を確認できます | いいえ |
kaeris_status | 翻訳先ロケールごとの完成度と健全性を確認します。欠落キー、余分なキー、プレースホルダーの不一致に加え、CI でのマージを制御する品質検出項目(数値のずれ、インラインタグの消失、エンティティ/エスケープの破損、ICU/CLDR の複数形の不足)を確認できます(kaeris check --json と同じ判定です) | いいえ |
kaeris_list_missing_keys | 翻訳先ロケールで欠落または破損しているキーを、原文とともに正確に一覧表示します。エージェントは修正が必要な箇所を正確に把握できます | いいえ |
kaeris_list_languages | 対応している翻訳先言語をすべて一覧表示します | はい、無料(利用上限の対象外) |
kaeris_translate | インライン文字列を翻訳し、言語ごとの結果を返します。QA(プレースホルダーの欠落と UI のはみ出しを検出。verify=True では意味を確認するために逆翻訳します)にも対応します | はい |
kaeris_translate_file | ディスク上のファイルを翻訳します(JSON/YAML/.strings/.xcstrings/.po/ARB/XML/CSV/XLIFF/.properties/.resx/.ftl/Markdown)。差分翻訳も可能で、kaeris.lock により再現できます | はい |
kaeris_add_language | ソースファイル全体を翻訳して、新しい翻訳先ロケールを初期設定します | はい |
最初の 3 つのツールはローカル専用(ネットワーク呼び出しなし、費用なし)です。また、kaeris_list_languages は無料の API 呼び出しで、利用上限にも含まれません。エージェントは、翻訳するかどうかを判断する前に、4 つのツールをすべて自由に使ってリポジトリの i18n を監査し、把握できます。
設計段階から再現性を重視
only_new=True を指定して kaeris_translate_file を実行すると、ソースファイルの隣に kaeris.lock が作成されます。CLI が書き込むものと同じロックファイルなので、リポジトリを共有するエージェントと人間が同期を保てます。各ソース文字列のハッシュに加えて、翻訳を生成した設定(トーン、用語集、アプリのコンテキスト、モデル)も記録します。そのため、次のように動作します。
- 文字列を 1 つ編集する — その文字列だけが再翻訳され、ほかの内容はバイト単位で完全に維持されます。
- トーン、用語集、コンテキストを変更する — ロケール全体が再翻訳され、古い翻訳と新しい翻訳が混在することはありません。
- プランを変更する — どのティアでも同じモデル(Gemini 2.5 Flash-Lite)を実行するため、アップグレードしても再翻訳は不要です。ロックファイルにはモデルも記録されます。モデルが変更される際は、気づかないうちに 2 つのモデルによる成果物が混在するのではなく、ロケール全体が再構築されます。
kaeris.lock をソースファイルと一緒にコミットすると、エージェント、チームメイト、CI のすべてが作業済みの内容を共有できます。
インストール
pip install kaeris-mcp
または Docker で実行
docker build -t kaeris-mcp .
docker run -i --rm -v "$PWD:/work" -w /work kaeris-mcp
サーバーは標準入力/標準出力で JSON-RPC を使用するため、公開するポートはありません。会話を継続するには -i が必要です。プロジェクトを /work にマウントすると、リポジトリ対応ツール(scan_repo、status、list_missing_keys)が直接読み取ります。KAERIS キーを使用するには -e KAERIS_API_KEY=… を渡してください。
クライアントを設定
Claude Desktop — claude_desktop_config.json に追加します
(macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\)。
{
"mcpServers": {
"kaeris-i18n": {
"command": "kaeris-mcp",
"env": {
"KAERIS_API_KEY": "kaerisp_optional"
}
}
}
}
Cursor — Settings → MCP → Add を選択するか、.cursor/mcp.json に追加します。
{ "mcpServers": { "kaeris-i18n": { "command": "kaeris-mcp" } } }
Claude Code — 次のコマンドを 1 つ実行します。
claude mcp add kaeris-i18n kaeris-mcp
クライアントを再起動すると、KAERIS ツールが自動的に表示されます。
認証とティア(すべて任意)
| 環境変数 | 用途 |
|---|---|
KAERIS_API_KEY | お使いの KAERIS キー。例:kaeris.dev/docs/key から取得できる無料の API キー(ファイルあたり 50k 文字、アカウント不要)— キーがない場合は、無料の 10k 文字デモが使用されます |
KAERIS_OPENROUTER_KEY | Lifetime/BYOK 用の OpenRouter キー — 月間利用量の上限はありません |
KAERIS_API_URL | API のベース URL を上書きします |
KAERIS_NO_UPDATE_CHECK | 1 に設定すると、1 日に 1 回表示される「新しいバージョンが利用可能です」という行を無効にします(stderr のみ。CI ではすでに無効です) |
試すのにキーは必要ありません。無料デモはそのまま利用できます。
プロンプトの例
- "
locales/en.jsonの文字列をドイツ語、ウクライナ語、日本語に翻訳してください。" - "これらのボタンのフランス語とスペイン語の翻訳を追加してください:保存、キャンセル、削除。"
- "en.json に追加した新しいキーだけを翻訳してください。ファイル全体をやり直さないでください。"
- "このリポジトリの i18n を確認して、欠けているものや壊れているものを教えてください。"(スキャン後にステータスを報告します — API 呼び出しはありません)
- "ウクライナ語がまだありません。追加してください。"(翻訳を通じて新しいロケールを初期化します)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。