Lingo.dev のCLIは、Web アプリのリソースファイル(JSON、YAML、XLIFF、PO、PHP)を、設定済みのローカライゼーションエンジン経由で翻訳します。フレームワークで i18n を設定し、CLI で翻訳ファイルを指定して実行するだけです。
仕組み#
どの Web フレームワークにも、リソースファイルから翻訳を読み込む i18n ライブラリがあります。たとえば React では JSON、Angular では XLIFF、Django では PO を使います。CLI はそれらのファイルを直接翻訳するため、コードを変更しなくてもフレームワーク側でそのまま翻訳を取り込めます。
フレームワークで i18n を設定する
各フレームワークの公式 i18n ライブラリを使って、ロケール対応のルーティング、翻訳関数、ソース言語のリソースファイルを追加します。以下の各フレームワークセクションから、公式セットアップガイドを参照できます。
CLI を設定する
翻訳ファイルの場所と対象ロケールを CLI に伝える i18n.json ファイルを作成します。bucket type は、フレームワークのリソース形式に対応しています。
翻訳を実行する
npx lingo.dev@latest run を実行すると、CLI がローカライゼーションエンジンを通じてリソースファイルを翻訳します。用語集ルール、ブランドボイス、モデル選択も自動で適用されます。
前提条件#
CLI を実行するたびに、コンテンツはローカライゼーションエンジンを通ります。これは、どの LLM モデル、用語集、ブランドボイス、指示を適用するかを決める設定です。Lingo.dev のダッシュボードで作成し、APIキーを生成してください。
AI 支援セットアップ
i18n MCPを使えば、フレームワークの i18n 基盤全体を自動でひな形化できます。これをClaude Code、Cursor、またはGitHub Copilotに接続し、「Set up i18n」と入力すると、エージェントが 13 ステップのチェックリストに沿って、ルーティング、翻訳ファイル、言語切り替え機能を設定します。
JavaScript フレームワーク#
react-i18nextは JSON ファイルから翻訳を読み込み、実行時にキーを翻訳文字列にマッピングするuseTranslationフックを提供します。
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"json": {
"include": ["public/locales/[locale]/translation.json"]
}
}
}サーバーサイドフレームワーク#
Laravel には組み込みのローカライズ機能があり、ロケールごとのディレクトリに整理された PHP ファイルから翻訳を読み込みます。
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"php": {
"include": ["lang/[locale]/messages.php"]
}
}
}翻訳の実行#
i18n.jsonを設定すれば、1 つのコマンドですべてのリソースファイルを翻訳できます。
npx lingo.dev@latest runCLI はソースロケールのファイルを読み込み、前回の実行以降の変更をlockfileで判定し、差分だけを翻訳して対象ロケールのファイルに書き込みます。既存の翻訳は保持され、CLI が補完するのは未翻訳または更新された文字列だけです。
一部だけ作業したい場合は、特定のロケールまたは bucket を対象にできます。
npx lingo.dev@latest run --target-locale es
npx lingo.dev@latest run --bucket json