このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "コンパイラーオプションの更新、FilePathPattern のサポート追加"v8.2.02026/3/9
- "コンパイラーオプションの更新"v8.1.72026/2/25
- "コンパイラーリリース"v7.3.12025/11/27
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
Intlayer コンパイラー | i18n のための自動コンテンツ抽出
Intlayer コンパイラーとは?
Intlayer コンパイラーは、アプリケーションの国際化(i18n)プロセスを自動化するために設計された強力なツールです。ソースコード(JSX、TSX、Vue、Svelte)内のコンテンツ宣言をスキャンし、それらを抽出して必要な辞書ファイルを自動的に生成します。これにより、コンテンツをコンポーネントと共に配置したままにでき、Intlayer が辞書の管理と同期を担当します。
なぜ Intlayer コンパイラーを使うのか?
- 自動化: コンテンツを辞書に手動でコピー&ペーストする手間を排除します。
- 高速化: 最適化されたコンテンツ抽出により、ビルドプロセスの高速化を実現します。
- 開発者体験: コンテンツ宣言を使用箇所にそのまま保持し、保守性を向上させます。
ライブアップデート: 開発中に即時フィードバックを得られるホットモジュールリプレースメント(HMR)をサポートします。
Speed: 最適化されたコンテンツ抽出により、ビルドプロセスの速度が維持されます。
Developer Experience: コンテンツ宣言を使用される場所に保つことで、保守性を向上させます。
ライブ更新: 開発中の即座なフィードバックのための Hot Module Replacement (HMR) をサポートしています。
より詳しい比較については、Compiler vs. Declarative i18n のブログ記事をご覧ください。
Intlayer コンパイラーを使わない理由
コンパイラーは優れた「そのまま動作する」体験を提供しますが、いくつかのトレードオフも導入します:
- ヒューリスティックの曖昧さ:コンパイラーは、ユーザー向けコンテンツとアプリケーションロジック(例:
className="active"、ステータスコード、製品ID)を推測する必要があります。複雑なコードベースでは、これにより誤検出や見逃された文字列が発生し、手動での注釈と例外処理が必要になる場合があります。 静的抽出のみ:コンパイラーベースの抽出は静的解析に依存しています。実行時のみ存在する文字列(APIエラーコード、CMSフィールドなど)は、コンパイラー単独では発見または翻訳できないため、補完的なランタイムi18n戦略が必要です。
静的のみの抽出: コンパイラベースの抽出は静的分析に依存します。実行時にのみ存在する文字列(APIエラーコード、CMS フィールドなど)はコンパイラだけでは検出または翻訳できないため、補完的なランタイム i18n 戦略が必要です。
より深いアーキテクチャの比較については、ブログ記事Compiler vs. Declarative i18nを参照してください。
代替として、コンテンツの完全な制御を維持しながらi18nプロセスを自動化するために、Intlayerは自動抽出コマンド intlayer extract(CLIドキュメントを参照)またはIntlayer VS Code拡張機能の Intlayer: extract content to Dictionary コマンド(VS Code拡張機能ドキュメントを参照)も提供しています。
使い方
The quickest way to wire the compiler in is the interactive setup: runnpx intlayer init --interactiveand select Compiler. On Vite there is nothing to configure — the compiler is plugged in directly through theintlayerCompiler()plugin. On Next.js the command scaffolds thebabel.config.jsshown below. The non-interactiveintlayer initleaves the compiler setup untouched.
Vite
Viteベースのアプリケーション(React, Vue, Svelteなど)では、vite-intlayer プラグインを使うのが最も簡単な方法です。
インストール
コードをクリップボードにコピー
設定
vite.config.ts を更新して intlayerCompiler プラグインを含めます:
コードをクリップボードにコピー
スタンドアロンintlayerCompiler()プラグインは、高度なセットアップのためにエクスポートされています。intlayer()と一緒に登録するのは安全です — コンパイラが自動的に重複を排除し、1 回だけ実行されます。
See complete tutorial: Intlayer Compiler with Vite+React
フレームワークサポート
Vite プラグインは異なるファイルタイプを自動的に検出して処理します:
Viteプラグインは自動的に異なるファイルタイプを検出し処理します:
- React / JSX / TSX: ネイティブに対応。
- Vue:
@intlayer/vue-compilerが必要です。 - Svelte:
@intlayer/svelte-compilerが必要です。
使用しているフレームワークに応じて、適切なコンパイラーパッケージをインストールしてください:
お使いのフレームワークに適切なコンパイラーパッケージをインストールしてください:
コードをクリップボードにコピー
Next.js (Babel)
Next.jsやその他の Webpack ベースの Babel を使用するアプリケーションでは、@intlayer/babelプラグインを使ってコンパイラーを設定できます。
インストール
コードをクリップボードにコピー
設定
babel.config.js(または babel.config.json)を更新して、抽出プラグインを含めます。Intlayerの設定を自動的に読み込むためのヘルパー getExtractPluginOptions を提供しています。
コードをクリップボードにコピー
この設定により、コンポーネント内で宣言されたコンテンツが自動的に抽出され、ビルドプロセス中に辞書の生成に使用されます。
See complete tutorial: Intlayer Compiler with Next.js
カスタム設定
コンパイラーの動作をカスタマイズするには、プロジェクトのルートにある intlayer.config.ts ファイルを更新します。
コードをクリップボードにコピー
コンパイラー設定リファレンス
以下のプロパティは、intlayer.config.tsファイルのcompilerブロックで設定できます。
enabled:
- タイプ:
boolean | 'build-only' - デフォルト:
true - 説明: コンパイラーを有効にするかどうかを示します。
- タイプ:
dictionaryKeyPrefix:
- タイプ:
string - デフォルト:
'' - 説明: 抽出された辞書キーのプレフィックス。
- タイプ:
transformPattern:
- タイプ:
string | string[] - デフォルト:
['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**'] - 説明: (非推奨: 代わりに
build.traversePatternを使用) 最適化のためにコードをトラバースするパターン。
- タイプ:
excludePattern:
- タイプ:
string | string[] - デフォルト:
['**/node_modules/**'] - 説明: (非推奨: 代わりに
build.traversePatternを使用) 最適化から除外するパターン。
- タイプ:
output:
- 型:
FilePathPattern - デフォルト:
({ key }) => 'compiler/${key}.content.json' - 説明: 出力ファイルのパスを定義します。
outputDirを置き換えます。{{locale}}、{{key}}、{{fileName}}、{{extension}}、{{format}}、{{dirPath}}、{{componentFileName}}、{{componentExtension}}、{{componentFormat}}などの動的変数を処理します。'my/{{var}}/path'形式の文字列または関数として設定できます。 - 注:
./**/*パスはコンポーネントを基準に解決されます。/**/*パスは Intlayer のbaseDirを基準に解決されます。 - 注: パスにロケールが定義されている場合、辞書はロケールごとに生成されます。
- 例:
output: ({ locale, key }) => 'compiler/${locale}/${key}.json'
- 型:
noMetadata:
- タイプ:
boolean - デフォルト:
false - 説明: メタデータをファイルに保存するかどうかを示します。trueの場合、コンパイラーは辞書のメタデータ(キー、コンテンツラッパー)を保存しません。
- 注:
loadJSONプラグインを使用する場合に便利です。 - 例:
trueの場合:json { "key": "value" }falseの場合:json { "key": "value", "content": { "key": "value" } }
- タイプ:
saveComponents:
- タイプ:
boolean - デフォルト:
false - 説明: 変換後にコンポーネントを保存するかどうかを示します。
- タイプ:
欠落した翻訳を埋める
Intlayerは、欠落した翻訳を埋めるためのCLIツールを提供しています。intlayerコマンドを使用して、コード内の欠落した翻訳をテストし、埋めることができます。
コードをクリップボードにコピー
コードをクリップボードにコピー
抽出
Intlayerは、コードからコンテンツを抽出するためのCLIツールを提供しています。intlayer extractコマンドを使用して、コードからコンテンツを抽出できます。
コードをクリップボードにコピー
詳細については、CLIドキュメント を参照してください。
