このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "Update to Next.js >= 9.4.0 architecture"v9.4.02026/8/22
- "Update Solid useIntlayer API usage to direct property access"v8.9.02026/5/4
- "Update compiler options, add FilePathPattern support"v8.2.02026/3/9
- "Initial release"v8.1.62026/2/23
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
既存のNext.jsアプリケーションを後から多言語化(i18n)する方法(2026年版ガイド)
Next.jsプロジェクトの初期段階から国際化(i18n)を導入するのは比較的簡単です。しかし、すでに単一言語で構築され運用されているNext.jsアプリケーションを後から多言語化する必要が生じた場合、どうすればよいでしょうか?
next-intlやnext-i18nextなどの従来のライブラリでこれを試みたことがある方なら、その大変さを知っているはずです:
- 何百ものJSX/TSXファイルからハードコードされたテキストを手作業で探す。
- ネストされたJSONファイルを手作業で作成し、任意の翻訳キー(
pages.dashboard.header.titleなど)を命名する。 - JSXのテキストを翻訳フック(
t('...'))に置き換える。 app/フォルダ全体をapp/[locale]/...に再構築し、既存のルートやブックマーク、検索エンジンのインデックスを破損させる。
2026年、コードベース全体を書き直す必要はありません。Intlayerを使えば、自動抽出、AI翻訳、非侵入的なルーティングを活用して、既存のNext.jsアプリをわずか数分で多言語化できます。
Next.js 16 App Routerの詳細なステップバイステップ技術ガイドをお探しですか?専用ドキュメントをご覧ください: IntlayerでNext.js 16を翻訳する。
目次
後付け導入の課題:既存アプリの多言語化が困難な理由
既存のNext.jsアプリを国際化する際、開発者は3つの大きな壁に直面します:
- コードの破壊:JSON辞書へ文字列を手動抽出すると、ほぼすべてのコンポーネントに変更が入り、リグレッションのリスクが高まります。
- ルーティングの制約:従来のライブラリは、ルートレイアウトやページを
[locale]動的セグメントへ移動させることを強制します。 - 膨大な翻訳作業:抽出した文字列を多数の言語に翻訳するために、終わりのないコピー&ペースト作業が発生します。
Intlayerは、コンパイラ支援による抽出、宣言型辞書、柔軟なルーティングによってこれらの問題を根本から解決します。
自動コンテンツ抽出(手作業によるテキスト検索は不要)
オプションA:CLI抽出ツール (npx intlayer extract)
プロジェクトのコードベースで直接Intlayerの抽出コマンドを実行します:
コードをクリップボードにコピー
このコマンドはReactコンポーネントを解析し、表示テキストを抽出してコンポーネントと同じディレクトリに宣言ファイル(.content.ts)を自動生成します。
オプションB:Intlayerコンパイラ(ビルド時自動抽出)
Intlayerコンパイラを有効にすると、デフォルト言語のテキストを通常通り直接JSX内に記述し続けることができます。ビルド時にコンパイラが自動的にテキストを抽出し、ローカライズされたコンテンツを注入します:
コードをクリップボードにコピー
バックグラウンドでIntlayerが辞書を構築し、コンポーネントをローカライズされたコンテンツに紐付けるため、手作業のリファクタリングは一切不要です。
この場合、以下の内容で src/app/page.content.ts ファイルが生成されます:
コードをクリップボードにコピー
好みのLLMを活用したAI自動翻訳
コンテンツを抽出したら、Intlayerに組み込まれたAI翻訳CLIを使って、OpenAI、Anthropic、DeepSeek、Mistral等と連携し、数秒で翻訳できます:
コードをクリップボードにコピー
コードをクリップボードにコピー
npx intlayer fill を実行すると、設定したすべての言語の翻訳が .content.ts 宣言ファイルに自動補完されます:
コードをクリップボードにコピー
Intlayerは上位レベルの applicationContext をLLMに提供するため、従来の自動翻訳ツールよりも技術的なニュアンス、ブランドのトーン、文脈に沿った文法を正確に保持できます。
本番環境にデプロイする前に、翻訳漏れの文字列がないか確認するには:
コードをクリップボードにコピー
既存のURLを壊さずに多言語ルーティングを追加
Intlayerは柔軟なルーティング戦略を提供します:
- クエリパラメータ / Cookieモード (
search-params):[locale]フォルダに移動せず、既存のフォルダ構造(/app/page.tsx)をそのまま維持できます。 - プレフィックスモード (
prefix/prefix-all-locales): SEOに適したURL構造(/ja/dashboardなど)に移行する際も、Next.jsプロキシを通じて柔軟に対応します。
わずか数秒でNext.jsの統合を設定できます:
コードをクリップボードにコピー
ルートレイアウトを IntlayerProvider でラップします:
コードをクリップボードにコピー
多言語SEO
多言語メタデータやhreflangヘッダーを自動生成し、検索エンジンでの発見性を高めます:
コードをクリップボードにコピー
詳細ガイド:ステップバイステップの実装手順へ
本記事では既存アプリへの導入概要を解説しました。ミドルウェアの詳細、静的生成(generateStaticParams)、サーバーコンポーネント等の全設定手順については、完全版ドキュメントをご覧ください:
👉 IntlayerでNext.js 16を翻訳する完全ガイド
よくある質問 (FAQ)
はい。Intlayerはrouting.mode: "search-params"やCookie/Header検出に対応しており、既存のフォルダ構造とURLを完全に保てます。
いいえ。npx intlayer extractまたはIntlayerコンパイラにより、自動的に抽出・管理されます。
コンポーネント単位の辞書定義とビルド時マクロにより、画面に必要な翻訳データのみがクライアントに送られます。
はい。npx intlayer fillコマンドを実行することで、主要なLLMと連携して文脈に合った翻訳を自動生成できます。
コメント
まだコメントはありません。最初のコメントを共有しましょう。
