ホームサンドボックスショーケースアプリ文書ブログ
    • English英語
      EN
    • русскийロシア語
      RU
    • 日本語日本語
      JA
    • françaisフランス語
      FR
    • 한국어韓国語
      KO
    • 中文中国語
      ZH
    • españolスペイン語
      ES
    • Deutschドイツ語
      DE
    • العربيةアラビア語
      AR
    • italianoイタリア語
      IT
    • British Englishイギリス英語
      EN-GB
    • portuguêsポルトガル語
      PT
    • हिन्दीヒンディー語
      HI
    • Türkçeトルコ語
      TR
    • polskiポーランド語
      PL
    • Indonesiaインドネシア語
      ID
    • Tiếng Việtベトナム語
      VI
    • українськаウクライナ語
      UK
    /
    フレームワークでドキュメントをフィルター
    Alt+←
    なぜIntlayer?
    始める
    コンセプト
    • Intlayerの仕組み
    • 設定
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • ビジュアルエディター
    • CMS
    • CI/CD統合
    • 翻訳複数形列挙条件性別挿入ファイルネスティングMarkdownHTML関数取得
    • ロケールごとのファイル
    • コンパイラー
    • 自動入力
    • テスト
    • バンドル最適化
    環境
    • Next.js 14とApp Router
      Next.js 15
      Next.js ロケールなし URL
      Next.jsとページルーター
      コンパイラ
    • Tanstack Start Solid
    • AstroおよびReact
      AstroおよびSvelte
      AstroおよびVue
      AstroおよびSolid
      AstroおよびPreact
      AstroおよびLit
      AstroおよびVanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • NuxtおよびVue
    • ViteおよびSolid
    • SvelteKit
    • ViteおよびPreact
    • ViteおよびVanilla JS
    • ViteおよびLit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React NativeとExpo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • LynxおよびReact
    Plugins
    • JSON
    • gettext (.po)
    VS Code拡張機能
    エージェント
    • MCPサーバー
    • エージェントのスキル
    リリース
    • v8
    • v7
    • v6
    ベンチマーク
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    ブログ
    質問をする
    1. Documentation
    2. コンセプト
    3. 設定
    作成:2024-08-13最終更新:2026-05-12
    このドキュメントをあなたの好きなAIアシスタントに参照してください
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します

    バージョン履歴

    1. "LM Studio プロバイダーのサポートを追加"
      v8.9.42026/5/12
    2. "ビルド設定に `prune` と `minify` オプションを追加"
      v8.7.02026/4/8
    3. "`currentDomain` オプションを追加"
      v8.7.02026/4/3
    4. "'compiler.output' と 'dictionary.fill' にロケールごとのオブジェクト記法を追加"
      v8.4.02026/3/20
    5. "'baseDir' を 'content' 設定から 'system' 設定に移動"
      v8.3.02026/3/11
    6. "コンパイラオプションを更新し、'output' と 'noMetadata' のサポートを追加"
      v8.2.02026/3/9
    7. "コンパイラオプションを更新"
      v8.1.72026/2/25
    8. "'build-only' コンパイラオプションと辞書プレフィックスを追加"
      v8.1.52026/2/23
    9. "Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face, Together.ai プロバイダーのサポートを追加"
      v8.0.62026/2/12
    10. "AI設定に `dataSerialization` を追加"
      v8.0.52026/2/6
    11. "基盤となるメカニズムをより正確に表すため、`live` インポートモードを `fetch` に名前変更。"
      v8.0.02026/1/24
    12. "`importMode` ビルド設定を `dictionary` 設定に移動。"
      v8.0.02026/1/22
    13. "ルーティング設定に `rewrite` オプションを追加"
      v8.0.02026/1/22
    14. "コンテンツ設定からシステム設定を分離。内部パスを `system` プロパティに移動。コンテンツファイルとコード変換を分離するため `codeDir` を追加。"
      v8.0.02026/1/18
    15. "`location` と `schema` 辞書オプションを追加"
      v8.0.02026/1/18
    16. "JSON5 および JSONC ファイル形式のサポートを追加"
      v7.5.12026/1/10
    17. "`buildMode` オプションを追加"
      v7.5.02025/12/17
    18. "`dictionary` 設定を追加"
      v7.0.02025/10/25
    19. "`middleware` を `routing` 設定に置き換え"
      v7.0.02025/10/21
    20. "`formatCommand` オプションを追加"
      v7.0.02025/10/12
    21. "`excludedPath` オプションを更新"
      v6.2.02025/10/12
    22. "`outputFormat` オプションを追加"
      v6.0.22025/9/23
    23. "`dictionaryOutput` フィールドと `i18nextResourcesDir` フィールドを削除"
      v6.0.02025/9/21
    24. "`live` インポートモードを追加"
      v6.0.02025/9/16
    25. "`hotReload` フィールドを `liveSync` に置き換え、`liveSyncPort` と `liveSyncURL` フィールドを追加"
      v6.0.02025/9/4
    26. "`activateDynamicImport` を `importMode` オプションに置き換え"
      v5.6.12025/7/25
    27. "デフォルトの `contentDir` を `['src']` から `['.']` に変更"
      v5.6.02025/7/13
    28. "`docs` コマンドを追加"
      v5.5.112025/6/29

    このページのコンテンツはAIを使用して翻訳されました。

    英語の元のコンテンツの最新バージョンを見る
    このドキュメントを編集

    このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。

    ドキュメントへのGitHubリンク
    コピー

    ドキュメントのMarkdownをクリップボードにコピー

    Intlayer 設定ドキュメント

    概要

    Intlayer 設定ファイルを使用すると、国際化、ミドルウェア、コンテンツ管理など、プラグインのさまざまな側面をカスタマイズできます。このドキュメントでは、設定内の各プロパティの詳細な説明を提供します。


    目次


    設定ファイルのサポート

    Intlayer は、JSON、JS、MJS、および TS の設定ファイル形式をサポートしています。

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.json5
    • intlayer.config.jsonc
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    設定ファイルの例

    intlayer.config.ts
    コードをコピー

    コードをクリップボードにコピー

    import { Locales, type IntlayerConfig } from "intlayer";import { nextjsRewrite } from "intlayer/routing";import { z } from "zod";/** * 利用可能なすべてのオプションを示す Intlayer 設定ファイルの例。 */const config: IntlayerConfig = {  /**   * 国際化設定。   */  internationalization: {    /**     * アプリケーションでサポートされるロケールのリスト。     * デフォルト: [Locales.ENGLISH]     */    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    /**     * 各辞書で定義する必要がある必須ロケールのリスト。     * 空の場合、`strict` モードですべてのロケールが必須になります。     * デフォルト: []     */    requiredLocales: [Locales.ENGLISH],    /**     * 国際化されたコンテンツの厳密レベル。     * - "strict": 宣言されたロケールが欠落している、または宣言されていない場合にエラーをスローします。     * - "inclusive": 宣言されたロケールが欠落している場合に警告をスローします。     * - "loose": 既存のロケールをすべて受け入れます。     * デフォルト: "inclusive"     */    strictMode: "inclusive",    /**     * 要求されたロケールが見つからない場合にフォールバックとして使用されるデフォルトロケール。     * デフォルト: Locales.ENGLISH     */    defaultLocale: Locales.ENGLISH,  },  /**   * 辞書操作とフォールバック動作を制御する設定。   */  dictionary: {    /**     * 辞書のインポート方法を制御します。     * - "static": ビルド時に静的にインポートされます。     * - "dynamic": Suspense を使用して動的にインポートされます。     * - "fetch": Live Sync API を介して動的に取得されます。     * デフォルト: "static"     */    importMode: "static",    /**     * AI を使用して欠落している翻訳を自動入力する戦略。     * ブール値、または入力されたコンテンツを保存するパスパターン。     * デフォルト: true     */    fill: true,    /**     * 辞書ファイルの物理的な場所。     * - "local": ローカルファイルシステムに保存されます。     * - "remote": Intlayer CMS に保存されます。     * - "hybrid": ローカルファイルシステムと Intlayer CMS の両方に保存されます。     * - "plugin" (または任意のカスタム文字列): プラグインやカスタムソースによって提供されます。     * デフォルト: "local"     */    location: "local",    /**     * コンテンツを自動的に変換するかどうか (例: Markdown から HTML)。     * デフォルト: false     */    contentAutoTransformation: false,  },  /**   * ルーティングとミドルウェアの設定。   */  routing: {    /**     * ロケールルーティング戦略。     * - "prefix-no-default": デフォルト以外のすべてのロケールにプレフィックスを付けます (例: /dashboard, /fr/dashboard)。     * - "prefix-all": すべてのロケールにプレフィックスを付けます (例: /en/dashboard, /fr/dashboard)。     * - "no-prefix": URL にロケールを含めません。     * - "search-params": ?locale=... を使用します。     * デフォルト: "prefix-no-default"     */    mode: "prefix-no-default",    /**     * ユーザーが選択したロケールを保存する場所。     * オプション: 'cookie', 'localStorage', 'sessionStorage', 'header', またはそれらの配列。     * デフォルト: ['cookie', 'header']     */    storage: ["cookie", "header"],    /**     * アプリケーション URL のベースパス。     * デフォルト: ""     */    basePath: "",    /**     * 特定のロケールパスに対するカスタム URL リライトルール。     */    rewrite: nextjsRewrite({      "/[locale]/about": {        en: "/[locale]/about",        fr: "/[locale]/a-propos",      },    }),    /**     * ドメインベースのルーティングのために、ロケールをドメインのホスト名にマップします。     * これらのロケールのURLは絶対URLになります(例:https://intlayer.cn/)。     * ドメインがロケールを暗示するため、パスにロケールプレフィックスは追加されません。     * デフォルト: undefined     */    domains: {      en: "intlayer.org",      zh: "intlayer.cn",    },  },  /**   * コンテンツファイルの検索と処理に関する設定。   */  content: {    /**     * 辞書をスキャンするファイル拡張子。     * デフォルト: ['.content.ts', '.content.js', '.content.json', など]     */    fileExtensions: [".content.ts", ".content.js", ".content.json"],    /**     * .content ファイルが存在するディレクトリ。     * デフォルト: ["."]     */    contentDir: ["src"],    /**     * ソースコードが存在するディレクトリ。     * ビルドの最適化とコード変換に使用されます。     * デフォルト: ["."]     */    codeDir: ["src"],    /**     * スキャンから除外するパターン。     * デフォルト: ['node_modules', '.intlayer', など]     */    excludedPath: ["node_modules"],    /**     * 開発中に変更を監視し、辞書を再生成するかどうか。     * デフォルト: 開発環境では true     */    watch: true,    /**     * 新しく作成または更新された .content ファイルをフォーマットするためのコマンド。     */    formatCommand: 'npx prettier --write "{{file}}"',  },  /**   * ビジュアルエディタの設定。   */  editor: {    /**     * ビジュアルエディタを有効にするかどうか。     * デフォルト: false     */    enabled: true,    /**     * オリジン検証のためのアプリケーション URL。     * デフォルト: ""     */    applicationURL: "http://localhost:3000",    /**     * ローカルエディタサーバーのポート。     * デフォルト: 8000     */    port: 8000,    /**     * エディタのパブリック URL。     * デフォルト: "http://localhost:8000"     */    editorURL: "http://localhost:8000",    /**     * Intlayer CMS の URL。     * デフォルト: "https://app.intlayer.org"     */    cmsURL: "https://app.intlayer.org",    /**     * バックエンド API の URL。     * デフォルト: "https://back.intlayer.org"     */    backendURL: "https://back.intlayer.org",    /**     * リアルタイムコンテンツ同期を有効にするかどうか。     * デフォルト: false     */    liveSync: true,  },  /**   * AI による翻訳と生成の設定。   */  ai: {    /**     * 使用する AI プロバイダー。     * オプション: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'     * デフォルト: 'openai'     */    provider: "openai",    /**     * 選択したプロバイダーで使用するモデル。     */    model: "gpt-4o",    /**     * プロバイダーの API キー。     */    apiKey: process.env.OPENAI_API_KEY,    /**     * 翻訳を生成する際に AI をガイドするグローバルコンテキスト。     */    applicationContext: "これは旅行予約アプリケーションです。",    /**     * AI API のベース URL。     */    baseURL: "http://localhost:3000",    /**     * データシリアライゼーション     *     * オプション:     * - "json": デフォルト、信頼性が高いがトークン消費が多い。     * - "toon": トークン消費が少ないが、JSON ほど一貫性がない。     *     * デフォルト: "json"     */    dataSerialization: "json",  },  /**   * ビルドと最適化の設定。   */  build: {    /**     * ビルドの実行モード。     * - "auto": アプリのビルド中に自動的にビルドされます。     * - "manual": 明示的なビルドコマンドが必要です。     * デフォルト: "auto"     */    mode: "auto",    /**     * 未使用の辞書を削除して、最終的なバンドルを最適化するかどうか。     * デフォルト: 本番環境では true     */    optimize: true,    /**     * バンドルサイズを削減するために辞書を圧縮(Minify)する。     * デフォルト: true     *     * 注意点:     * - `optimize` が無効な場合、このオプションは無視されます。     * - `editor.enabled` が true の場合、このオプションは無視されます。     */    minify: true,    /**     * 辞書内の未使用のキーを削除(Purge)する。     * デフォルト: true     *     * 注意点:     * - `optimize` が無効な場合、このオプションは無視されます。     */    purge: true,    /**     * 生成された辞書ファイルの出力形式。     * デフォルト: ['cjs', 'esm']     */    outputFormat: ["cjs", "esm"],    /**     * ビルド時に TypeScript の型チェックを行うかどうか。     * デフォルト: false     */    checkTypes: false,  },  /**   * ロガー設定。   */  log: {    /**     * ログレベル。     * - "default": 標準的なログ記録。     * - "verbose": 詳細なデバッグログ。     * - "disabled": ログを記録しません。     * デフォルト: "default"     */    mode: "default",    /**     * すべてのログメッセージのプレフィックス。     * デフォルト: "[intlayer]"     */    prefix: "[intlayer]",  },  /**   * システム設定 (高度なユースケース)   */  system: {    /**     * ローカライズされた辞書を保存するディレクトリ。     */    dictionariesDir: ".intlayer/dictionary",    /**     * モジュール拡張 (module augmentation) 用のディレクトリ。     */    moduleAugmentationDir: ".intlayer/types",    /**     * マージされていない辞書を保存するディレクトリ。     */    unmergedDictionariesDir: ".intlayer/unmerged_dictionary",    /**     * 辞書の型を保存するディレクトリ。     */    typesDir: ".intlayer/types",    /**     * メインアプリケーションファイルが保存されるディレクトリ。     */    mainDir: ".intlayer/main",    /**     * コンパイルされた設定ファイルが保存されるディレクトリ。     */    configDir: ".intlayer/config",    /**     * キャッシュファイルが保存されるディレクトリ。     */    cacheDir: ".intlayer/cache",  },  /**   * コンパイラ設定 (高度なユースケース)   */  compiler: {    /**     * コンパイラを有効にするかどうか。     *     * - false: コンパイラを無効にする。     * - true: コンパイラを有効にする。     * - "build-only": 起動時間を短縮するため、開発中はコンパイラをスキップする。     *     * デフォルト: false     */    enabled: true,    /**     * 出力ファイルのパスを定義します。`outputDir` を上書きします。     *     * - `./` で始まるパスは、コンポーネントのディレクトリを基準に解決されます。     * - `/` で始まるパスは、プロジェクトのルート (`baseDir`) を基準に解決されます。     *     * - パスに `{{locale}}` 変数を含めると、ロケールごとに個別の辞書生成が有効になります。     *     * 例:     * ```ts     * {     *   // コンポーネントの近くに多言語対応の .content.ts ファイルを作成する     *   output: ({ fileName, extension }) => `./${fileName}${extension}`,     *     *   // output: './{{fileName}}{{extension}}', // テンプレート文字列を使用した同等の記述     * }     * ```     *     * ```ts     * {     *   // プロジェクトのルートにロケールごとに集約された JSON を作成する     *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,     *     *   // output: '/locales/{{locale}}/{{key}}.content.json', // テンプレート文字列を使用した同等の記述     * }     * ```     *     * 変数リスト:     *   - `fileName`: ファイル名。     *   - `key`: コンテンツキー。     *   - `locale`: コンテンツロケール。     *   - `extension`: ファイル拡張子。     *   - `componentFileName`: コンポーネントファイル名。     *   - `componentExtension`: コンポーネントファイル拡張子。     *   - `format`: 辞書フォーマット。     *   - `componentFormat`: コンポーネント辞書フォーマット。     *   - `componentDirPath`: コンポーネントディレクトリパス。     */    output: ({ locale, key }) => `compiler/${locale}/${key}.json`,    /**     * 変換後のコンポーネントを保存するかどうか。     * これにより、コンパイラを一度だけ実行してアプリケーションを変換し、その後削除することが可能になります。     */    saveComponents: false,    /**     * 生成されたファイルにコンテンツのみを挿入します。ロケールごとの i18next または ICU MessageFormat JSON 出力に有用です。     */    noMetadata: false,    /**     * 辞書キープレフィックス     */    dictionaryKeyPrefix: "", // 抽出された辞書キーにオプションのプレフィックスを追加します  },  /**   * 辞書のコンテンツを検証するためのカスタムスキーマ。   */  schemas: {    "my-schema": z.object({      title: z.string(),    }),  },  /**   * プラグイン設定。   */  plugins: [],};export default config;

    設定リファレンス

    以下のセクションでは、Intlayer で利用可能なさまざまな設定項目について詳しく説明します。


    国際化設定 (Internationalization)

    使用可能なロケールやアプリケーションのデフォルトロケールなど、国際化に関連する設定を定義します。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    locales アプリケーションでサポートされるロケールのリスト。 string[] [Locales.ENGLISH] ['en', 'fr', 'es']
    requiredLocales アプリケーションで必須とされるロケールのリスト。 string[] [] [] • 空の場合、strict モードではすべてのロケールが必須になります。
    • 必須ロケールが locales フィールドにも定義されていることを確認してください。
    strictMode TypeScript を使用して、国際化コンテンツの堅牢な実装を保証します。 string 'inclusive' • "strict" の場合: t 関数は、宣言されたすべてのロケールが定義されていることを要求します。不足している場合や宣言されていない場合にエラーをスローします。
    • "inclusive" の場合: ロケールが不足している場合に警告を出しますが、宣言されていない既存のロケールの使用も許可します。
    • "loose" の場合: 既存のすべてのロケールを受け入れます。
    defaultLocale 要求されたロケールが見つからない場合にフォールバックとして使用されるデフォルトロケール。 string Locales.ENGLISH 'en' URL、Cookie、またはヘッダーでロケールが指定されていない場合にロケールを決定するために使用されます。

    エディタ設定 (Editor)

    サーバーポートや有効化ステータスなど、組み込みのビジュアルエディタの設定を定義します。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    applicationURL アプリケーションの URL。 string undefined 'http://localhost:3000'
    'https://example.com'
    process.env.INTLAYER_EDITOR_URL
    • セキュリティ上の理由から、エディタのオリジンを制限するために使用されます。
    • '*' に設定すると、任意のオリジンからエディタにアクセス可能になります。
    port ビジュアルエディタサーバーが使用するポート。 number 8000
    editorURL エディタサーバーの URL。 string 'http://localhost:8000' 'http://localhost:3000'
    'https://example.com'
    process.env.INTLAYER_EDITOR_URL
    • アプリケーションと対話可能なオリジンを制限するために使用されます。
    • '*' に設定すると、任意のオリジンからアクセス可能になります。
    • ポートが変更された場合や、エディタが別のドメインでホストされている場合に設定する必要があります。
    cmsURL Intlayer CMS の URL。 string 'https://app.intlayer.org' 'https://app.intlayer.org'
    backendURL バックエンドサーバーの URL。 string https://back.intlayer.org http://localhost:4000
    enabled アプリケーションがビジュアルエディタと対話するかどうか。 boolean false process.env.NODE_ENV !== 'production' • false の場合、エディタはアプリケーションと対話できません。
    • 特定の環境で無効にすることでセキュリティが向上します。
    clientId intlayer パッケージが oAuth2 を介してバックエンドで認証できるようにします。アクセストークンを取得するには、intlayer.org/project にアクセスしてください。 string |
    undefined
    undefined 秘密にする必要があるため、環境変数に保存してください。
    clientSecret intlayer パッケージが oAuth2 を介してバックエンドで認証できるようにします。アクセストークンを取得するには、intlayer.org/project にアクセスしてください。 string |
    undefined
    undefined 秘密にする必要があるため、環境変数に保存してください。
    dictionaryPriorityStrategy ローカル辞書とリモート辞書の両方が存在する場合の、辞書の優先順位戦略。 string 'local_first' 'distant_first' • 'distant_first': ローカルよりもリモートを優先します。
    • 'local_first': リモートよりもローカルを優先します。
    liveSync CMS、ビジュアルエディタ、バックエンドでの変更が検出されたときに、アプリサーバーがコンテンツを即座にリロードするかどうか。 boolean true true • 辞書が追加または更新されると、アプリはページコンテンツを更新します。
    • Live Sync はコンテンツを別のサーバーにオフロードするため、パフォーマンスにわずかな影響を与える可能性があります。
    • 両方を同じマシンでホストすることをお勧めします。
    liveSyncPort Live Sync サーバーのポート。 number 4000 4000
    liveSyncURL Live Sync サーバーの URL。 string 'http://localhost:{liveSyncPort}' 'https://example.com' デフォルトで localhost を指します。リモートの Live Sync サーバーを使用する場合は変更可能です。

    ルーティング設定 (Routing)

    URL 構造、ロケール保存、ミドルウェア管理など、ルーティングの動作を制御する設定。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    mode ロケール管理のための URL ルーティングモード。 'prefix-no-default' |
    'prefix-all' |
    'no-prefix' |
    'search-params'
    'prefix-no-default' 'prefix-no-default': /dashboard (en) または /fr/dashboard (fr)。 'prefix-all': /en/dashboard。 'no-prefix': ロケールは他の手段で管理されます。 'search-params': /dashboard?locale=fr Cookie やロケール保存の管理には影響しません。
    storage クライアントでのロケール保存の設定。 false |
    'cookie' |
    'localStorage' |
    'sessionStorage' |
    'header' |
    CookiesAttributes |
    StorageAttributes |
    Array
    ['cookie', 'header'] 'localStorage'
    [{ type: 'cookie', name: 'custom-locale', secure: true }]
    下記の「保存オプション」の表を参照してください。
    basePath アプリケーション URL のベースパス。 string '' '/my-app' アプリが https://example.com/my-app にある場合、basePath は '/my-app' となり、URL は https://example.com/my-app/en のようになります。
    rewrite 特定のパスに対してデフォルトのルーティングモードを上書きするカスタム URL リライトルール。動的パラメータ [param] をサポートします。 Record<string, StrictModeLocaleMap<string>> undefined 下記の例を参照してください • リライトルールは mode よりも優先されます。
    • Next.js および Vite で動作します。
    • getLocalizedUrl() は一致するルールを自動的に適用します。
    • カスタム URL リライトを参照してください。
    domains ドメインベースのルーティングのために、ロケールをドメインのホスト名にマップします。設定されている場合、そのロケールのURLはパスのベースとしてそのドメインを使用し(絶対URL)、パスにロケールプレフィックスは追加されません。 Partial<Record<Locale, string>> undefined { zh: 'intlayer.zh', fr: 'intlayer.org' } • ホスト名に含まれていない場合、デフォルトのプロトコルは https:// です。
    • ドメイン自体がロケールを識別するため、/zh/ プレフィックスは追加されません。
    • getLocalizedUrl('/', 'zh') は https://intlayer.zh/ を返します。

    rewrite の例:

    typescript
    コードをコピー

    コードをクリップボードにコピー

    routing: {  mode: "prefix-no-default", // フォールバック戦略  rewrite: nextjsRewrite({    "/about": {      en: "/about",      fr: "/a-propos",    },    "/product/[slug]": {      en: "/product/[slug]",      fr: "/produit/[slug]",    },    "/blog/[category]/[id]": {      en: "/blog/[category]/[id]",      fr: "/journal/[category]/[id]",    },  }),}

    保存オプション (Storage Options)

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    値 備考 説明
    'cookie' • GDPR コンプライアンスのため、適切なユーザーの同意を確保してください。
    • CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }) を介してカスタマイズ可能です。
    ロケールを Cookie に保存します。クライアントとサーバーの両方からアクセス可能です。
    'localStorage' • 明示的にクリアされない限り期限切れになりません。
    • Intlayer プロキシからはアクセスできません。
    • StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }) を介してカスタマイズ可能です。
    ブラウザにロケールを無期限に保存します。クライアントサイドのみ。
    'sessionStorage' • タブやウィンドウが閉じられるとクリアされます。
    • Intlayer プロキシからはアクセスできません。
    • StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }) を介してカスタマイズ可能です。
    ページセッションの間、ロケールを保存します。クライアントサイドのみ。
    'header' • API 呼び出しに有用です。
    • クライアントサイドからはアクセスできません。
    • StorageAttributes ({ type: 'header', name: 'custom-locale' }) を介してカスタマイズ可能です。
    HTTP ヘッダーを介してロケールを保存または送信します。サーバーサイドのみ。

    Cookie 属性 (Cookies Attributes)

    Cookie 保存を使用する場合、追加のアトリビュートを設定できます。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型
    name Cookie の名前。デフォルト: 'INTLAYER_LOCALE' string
    domain Cookie のドメイン。デフォルト: undefined string
    path Cookie のパス。デフォルト: undefined string
    secure HTTPS を必須にします。デフォルト: undefined boolean
    httpOnly HTTP-only フラグ。デフォルト: undefined boolean
    sameSite SameSite ポリシー。 'strict' |
    'lax' |
    'none'
    expires 有効期限または日数。デフォルト: undefined Date |
    number

    保存属性 (Storage Attributes)

    localStorage または sessionStorage を使用する場合。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型
    type 保存方法のタイプ。 'localStorage' |
    'sessionStorage'
    name 保存キーの名前。デフォルト: 'INTLAYER_LOCALE' string

    設定例

    新しい v7 ルーティング構造の一般的な設定例をいくつか示します。

    基本設定 (デフォルト):

    typescript
    コードをコピー

    コードをクリップボードにコピー

    import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: "localStorage",    basePath: "",  },};export default config;

    GDPR 準拠設定:

    typescript
    コードをコピー

    コードをクリップボードにコピー

    import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: [      {        type: "localStorage",        name: "user-locale",      },      {        type: "cookie",        name: "user-locale",        secure: true,        sameSite: "strict",        httpOnly: false,      },    ],    basePath: "",  },};export default config;

    検索パラメータモード:

    typescript
    コードをコピー

    コードをクリップボードにコピー

    import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "search-params",    storage: "localStorage",    basePath: "",  },};export default config;

    カスタム保存を使用したプレフィックスなしモード:

    typescript
    コードをコピー

    コードをクリップボードにコピー

    import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "no-prefix",    storage: {      type: "sessionStorage",      name: "app-locale",    },    basePath: "/my-app",  },};export default config;

    動的パスを使用したカスタム URL リライト:

    typescript
    コードをコピー

    コードをクリップボードにコピー

    // intlayer.config.tsimport { nextjsRewrite } from "intlayer/routing";const config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default", // リライトされないパスのフォールバック    storage: "cookie",    rewrite: nextjsRewrite({      "/about": {        en: "/about",        fr: "/a-propos",      },      "/product/[slug]": {        en: "/product/[slug]",        fr: "/produit/[slug]",      },      "/blog/[category]/[id]": {        en: "/blog/[category]/[id]",        fr: "/journal/[category]/[id]",      },    }),  },};export default config;

    コンテンツ設定 (Content)

    ディレクトリ名、ファイル拡張子、派生設定など、アプリケーション内でのコンテンツ管理方法に関連する設定。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    watch Intlayer がコンテンツ宣言ファイルの変更を監視して辞書を再生成するかどうか。 boolean true
    fileExtensions 辞書をコンパイルする際にスキャンするファイル拡張子。 string[] ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx'] ['.data.ts', '.data.js', '.data.json'] カスタマイズすることで競合を回避できる場合があります。
    contentDir コンテンツ定義ファイル (.content.*) が保存されているディレクトリパス。 string[] ['.'] ['src', '../../ui-library', require.resolve("@my-package/content"), '@my-package/content'] コンテンツファイルの監視と辞書の再生成に使用されます。
    codeDir コードが保存されているベースディレクトリからの相対ディレクトリパス。 string[] ['.'] ['src', '../../ui-library'] • コード変換 (プルーニング、最適化) のためにコードファイルを監視するために使用されます。
    • contentDir と分離することでパフォーマンスが向上する場合があります。
    excludedPath コンテンツスキャンから除外するディレクトリ。 string[] ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**'] 未使用。将来の実装のために計画されています。
    formatCommand Intlayer がローカルにファイルを書き込む際のコンテンツファイルのフォーマッタコマンド。 string undefined 'npx prettier --write "{{file}}" --log-level silent' (Prettier), 'npx biome format "{{file}}" --write --log-level none' (Biome), 'npx eslint --fix "{{file}}" --quiet' (ESLint) • {{file}} はファイルパスに置き換えられます。
    • 未定義の場合、Intlayer は自動的に検出を試みます (prettier、biome、eslint をテスト)。

    辞書設定 (Dictionary)

    自動入力動作やコンテンツ生成など、辞書操作を制御するパラメータ。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    fill 自動入力 (AI 翻訳) の出力ファイルがどのように生成されるかを制御します。 boolean |
    FilePathPattern |
    Partial<Record<Locale, boolean | FilePathPattern>>
    true { en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false } • true: デフォルトパス (ソースと同じファイル)。
    • false: 無効化。
    • 文字列/関数パターンは、ロケールごとのファイルを生成します。
    • ロケールごとのオブジェクト: 各ロケールが独自のパターンに対応します。false はそのロケールを無視します。
    • {{locale}} を含めると、ロケールごとの生成がトリガーされます。
    • 辞書レベルの fill は、常にこのグローバル設定よりも優先されます。
    description エディタや CMS が辞書の目的を理解するのに役立ちます。AI による翻訳生成のコンテキストとしても使用されます。 string undefined 'User profile section'
    locale 辞書をロケールごとの形式に変換します。宣言された各フィールドが翻訳ノードになります。存在しない場合、辞書は多言語対応として扱われます。 LocalesValues undefined 'en' 辞書が複数の言語の翻訳を含むのではなく、特定のロケール専用である場合に使用します。
    contentAutoTransformation コンテンツの文字列を型付きノード (markdown, HTML, または insertion) に自動変換します。 boolean |
    { markdown?: boolean; html?: boolean; insertion?: boolean }
    false true • Markdown : ### Title → md('### Title')。
    • HTML : <div>Title</div> → html('<div>Title</div>')。
    • 挿入 (Insertion) : Hello {{name}} → insert('Hello {{name}}')。
    location 辞書ファイルの保存場所と CMS との同期方法を指定します。 'local' |
    'remote' |
    'hybrid' |
    'plugin' |
    string
    'local' 'hybrid' • 'local': ローカルでのみ管理。
    • 'remote': リモート (CMS) でのみ管理。
    • 'hybrid': ローカルとリモートの両方で管理。
    • 'plugin' またはカスタム文字列: プラグインやカスタムソースによって管理。
    importMode 辞書のインポート方法を制御します。 'static' |
    'dynamic' |
    'fetch'
    'static' 'dynamic' • 'static': 静的インポート。
    • 'dynamic': Suspense を介した動的インポート。
    • 'fetch': Live Sync API を介して取得。失敗した場合は 'dynamic' にフォールバック。
    • @intlayer/babel および @intlayer/swc プラグインが必要。
    • キーは静的に宣言される必要があります。
    • optimize がオフの場合は無視されます。
    • getIntlayer、getDictionary などには影響しません。
    priority 辞書の優先順位。辞書間の競合を解決する際、高い値が低い値に優先されます。 number undefined 1
    live 非推奨 - 代わりに importMode: 'fetch' を使用してください。辞書コンテンツを Live Sync API を介して動的に取得するかどうかを指定していました。 boolean undefined v8.0.0 で importMode: 'fetch' に名前変更。
    schema JSON スキーマ検証のために Intlayer によって自動生成されます。 'https://intlayer.org/schema.json' 自動生成 手動で編集しないでください。
    title エディタや CMS で辞書を識別するのに役立ちます。 string undefined 'User Profile'
    tags 辞書をカテゴリ化し、エディタや AI にコンテキストや指示を提供します。 string[] undefined ['user', 'profile']
    version リモート辞書のバージョン。現在使用されているバージョンを追跡するのに役立ちます。 string undefined '1.0.0' • CMS で管理可能。
    • ローカルで編集しないでください。

    fill の例:

    ts
    コードをコピー

    コードをクリップボードにコピー

    dictionary: {  fill: {    en: "/locales/en/{{key}}.content.json",    fr: ({ key }) => `/locales/fr/${key}.content.json`,    es: false,  },};

    ロガー設定 (Logger)

    Intlayer からのログ出力をカスタマイズするためのパラメータ。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    mode ロガーのモードを指定します。 'default' |
    'verbose' |
    'disabled'
    'default' 'verbose' • 'verbose': デバッグ用により多くの情報を出力します。
    • 'disabled': ロガーを完全に無効にします。
    prefix ログメッセージのプレフィックス。 string '[intlayer] ' '[my prefix] '

    AI 設定 (AI)

    プロバイダー、モデル、API キーなど、Intlayer の AI 機能を制御する設定。

    アクセストークンを使用して Intlayer ダッシュボード に登録されている場合、この設定はオプションです。Intlayer は、ニーズに合わせて最も効率的で費用対効果の高い AI ソリューションを自動的に管理します。デフォルトのオプションを使用することで、Intlayer が常に最適なモデルを使用するように更新されるため、長期的なメンテナンス性が向上します。

    独自の API キーや特定のモデルを使用したい場合は、カスタム AI 設定を定義できます。 この AI 設定は、Intlayer 環境内でグローバルに使用されます。CLI コマンド (例: fill) はデフォルトでこれらの設定を使用します。また、SDK、ビジュアルエディタ、CMS も同様です。コマンドパラメータを介して、特定のユースケースに対してこれらのデフォルト値を上書きできます。

    Intlayer は、柔軟性を最大限に高めるために複数の AI プロバイダーをサポートしています。現在サポートされているプロバイダーは次のとおりです。

    • OpenAI (デフォルト)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Google AI Studio
    • Google Vertex
    • Meta Llama
    • Ollama
    • OpenRouter
    • Alibaba Cloud
    • Fireworks
    • Hugging Face
    • Groq
    • Amazon Bedrock
    • Together.ai
    • LM Studio
    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    provider Intlayer の AI 機能に使用するプロバイダー。 'openai' |
    'anthropic' |
    'mistral' |
    'deepseek' |
    'gemini' |
    'ollama' |
    'openrouter' |
    'alibaba' |
    'fireworks' |
    'groq' |
    'huggingface' |
    'bedrock' |
    'googleaistudio' |
    'googlevertex' |
    'togetherai' |
    'lmstudio'
    undefined 'anthropic' プロバイダーによって、必要な API キーや価格が異なります。
    model AI 機能に使用するモデル。 string なし 'gpt-4o-2024-11-20' 特定のモデルはプロバイダーによって異なります。
    temperature AI の応答のランダム性を制御します。 number なし 0.1 温度が高いほど、創造的で予測しにくくなります。
    apiKey 選択したプロバイダーの API キー。 string なし process.env.OPENAI_API_KEY 秘密にする必要があるため、環境変数に保存してください。
    applicationContext AI がより正確な翻訳を生成できるようにするための、アプリケーションに関する追加のコンテキスト (ドメイン、ターゲットオーディエンス、トーン、用語)。 string なし '旅行予約アプリのコンテキスト' ルールを追加するためにも使用できます (例: "URL を変換しないでください")。
    baseURL AI API のベース URL。 string なし 'https://api.openai.com/v1'
    'http://localhost:5000'
    ローカルまたはカスタムの AI API エンドポイントを指すことができます。
    dataSerialization AI 機能のデータシリアライゼーション形式。 'json' |
    'toon'
    undefined 'toon' • 'json': デフォルト、信頼性が高いがトークン消費が多い。
    • 'toon': トークン消費が少ないが、一貫性に欠ける。
    • 推論の努力 (reasoning effort) などの追加パラメータがコンテキストとしてモデルに渡されます。

    ビルド設定 (Build)

    Intlayer がアプリケーションの国際化をどのように最適化およびコンパイルするかを制御するパラメータ。

    ビルドオプションは、@intlayer/babel および @intlayer/swc プラグインに適用されます。

    開発モードでは、Intlayer は開発体験を簡素化するために辞書の静的インポートを使用します。
    最適化中、Intlayer はチャンキングを最適化するために辞書の呼び出しを置き換え、最終的なバンドルが実際に使用される辞書のみをインポートするようにします。
    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    mode ビルドモードを制御します。 'auto' |
    'manual'
    'auto' 'manual' • 'auto': アプリのビルド中にビルドが自動的にトリガーされます。
    • 'manual': ビルドコマンドが明示的に呼び出されたときにのみ実行されます。
    • 辞書のビルドを無効にするためにも使用できます (例: Node.js 環境での実行を停止する場合)。
    optimize ビルドの最適化を行うかどうかを制御します。 boolean undefined process.env.NODE_ENV === 'production' • 未定義の場合、フレームワークのビルド (Vite/Next.js) 時に最適化がトリガーされます。
    • true の場合、開発モードでも強制的に最適化を行います。
    • false の場合、無効化されます。
    • 有効な場合、チャンキングを最適化するために辞書の呼び出しを置き換えます。
    • @intlayer/babel および @intlayer/swc プラグインが必要。
    minify バンドルサイズを削減するために辞書を圧縮(Minify)する。 boolean false • 最終的なバンドルを最小化するかどうかを指定します。
    • デフォルト:本番環境では true。
    • optimize が無効な場合、このオプションは無視されます。
    • editor.enabled が真の場合、このオプションは無視されます。
    purge 辞書内の未使用のキーを削除(Purge)する。 boolean false • 最終的なバンドルをクリーンアップするかどうかを指定します。
    • デフォルト:本番環境では true。
    • optimize が無効な場合、このオプションは無視されます。
    checkTypes ビルド時に TypeScript の型チェックを行い、エラーを記録するかどうかを指定します。 boolean false ビルドプロセスが遅くなる可能性があります。
    outputFormat 辞書の出力形式を制御します。 ('esm' | 'cjs')[] ['esm', 'cjs'] ['cjs']
    traversePattern 最適化中にスキャンするファイルを定義するパターン。 string[] ['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*'] ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**'] • ビルドパフォーマンスを向上させるために、最適化対象を関連するファイルに限定します。
    • optimize がオフの場合は無視されます。
    • glob パターンを使用します。

    システム設定 (System)

    これらの設定は、高度なユースケースおよび Intlayer の内部設定用です。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    dictionariesDir コンパイルされた辞書用のディレクトリ。 string '.intlayer/dictionary'
    moduleAugmentationDir TypeScript のモジュール拡張用ディレクトリ。 string '.intlayer/types'
    unmergedDictionariesDir マージされていない辞書用のディレクトリ。 string '.intlayer/unmerged_dictionary'
    typesDir 生成された型用のディレクトリ。 string '.intlayer/types'
    mainDir Intlayer メインファイル用のディレクトリ。 string '.intlayer/main'
    configDir コンパイルされた設定ファイル用のディレクトリ。 string '.intlayer/config'
    cacheDir キャッシュファイル用のディレクトリ。 string '.intlayer/cache'

    コンパイラ設定 (Compiler)

    コンポーネントから直接辞書を抽出する Intlayer コンパイラを制御する設定。

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型 デフォルト 例 備考
    enabled 辞書の抽出のためにコンパイラを有効にするかどうかを指定します。 boolean |
    'build-only'
    true 'build-only' 'build-only' は起動時間を短縮するため、開発中はコンパイラをスキップします。ビルドコマンドでのみ実行されます。
    dictionaryKeyPrefix 抽出された辞書キーのプレフィックス。 string '' 'my-prefix-' 競合を避けるために、(ファイル名に基づいた) 生成されたキーに追加されます。
    saveComponents 変換後のコンポーネントを保存するかどうか。 boolean false • true の場合、元のファイルを変換後のバージョンで上書きします。
    • 実行後、コンパイラを削除することが可能になります。
    output 出力ファイルのパスを定義します。outputDir を上書きします。変数テンプレートをサポート: {{fileName}},
    {{key}},
    {{locale}},
    {{extension}},
    {{componentFileName}},
    {{componentExtension}},
    {{format}},
    {{componentFormat}},
    {{componentDirPath}}。
    boolean |
    FilePathPattern |
    Partial<Record<Locale, boolean | FilePathPattern>>
    undefined './{{fileName}}{{extension}}'
    '/locales/{{locale}}/{{key}}.json'
    { en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }
    • ./ はコンポーネントディレクトリ基準。
    • / はルート基準。
    • {{locale}} を含めるとロケールごとの生成がトリガーされます。
    • ロケールごとのオブジェクト記法をサポート。
    noMetadata true の場合、出力から辞書のメタデータ (キー、コンテンツラッパー) を除外します。 boolean false false → {"key":"my-key","content":{"key":"value"}}
    true → {"key":"value"}
    • i18next や ICU MessageFormat JSON 出力に有用。
    • loadJSON プラグインと組み合わせて使用。
    dictionaryKeyPrefix 辞書のキープレフィックス string '' 抽出された辞書キーにオプションのプレフィックスを追加します。

    カスタムスキーマ (Custom Schemas)

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型
    schemas 辞書の構造を検証するための Zod スキーマを定義できます。 Record<string, ZodSchema>

    プラグイン (Plugins)

    テーブルのすべての内容を表示

    テーブルをモーダルで開き、すべてのデータを明確に表示

    フィールド 説明 型
    plugins 有効にする Intlayer プラグインのリスト。 IntlayerPlugin[]
    Intlayerの仕組み
    CLI
    Alt+→

    このページについて

      ディスカッションは匿名で、よくある問題に対処するために定期的に確認されます。機能のアイデア、ドキュメントへのフィードバック、Intlayerに関することなど、お気軽にお聞かせください, このフィードバックをロードマップの作成と製品の改善に活用しています。

      import { Locales, type IntlayerConfig } from "intlayer";import { nextjsRewrite } from "intlayer/routing";import { z } from "zod";/** * 利用可能なすべてのオプションを示す Intlayer 設定ファイルの例。 */const config: IntlayerConfig = {  /**   * 国際化設定。   */  internationalization: {    /**     * アプリケーションでサポートされるロケールのリスト。     * デフォルト: [Locales.ENGLISH]     */    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    /**     * 各辞書で定義する必要がある必須ロケールのリスト。     * 空の場合、`strict` モードですべてのロケールが必須になります。     * デフォルト: []     */    requiredLocales: [Locales.ENGLISH],    /**     * 国際化されたコンテンツの厳密レベル。     * - "strict": 宣言されたロケールが欠落している、または宣言されていない場合にエラーをスローします。     * - "inclusive": 宣言されたロケールが欠落している場合に警告をスローします。     * - "loose": 既存のロケールをすべて受け入れます。     * デフォルト: "inclusive"     */    strictMode: "inclusive",    /**     * 要求されたロケールが見つからない場合にフォールバックとして使用されるデフォルトロケール。     * デフォルト: Locales.ENGLISH     */    defaultLocale: Locales.ENGLISH,  },  /**   * 辞書操作とフォールバック動作を制御する設定。   */  dictionary: {    /**     * 辞書のインポート方法を制御します。     * - "static": ビルド時に静的にインポートされます。     * - "dynamic": Suspense を使用して動的にインポートされます。     * - "fetch": Live Sync API を介して動的に取得されます。     * デフォルト: "static"     */    importMode: "static",    /**     * AI を使用して欠落している翻訳を自動入力する戦略。     * ブール値、または入力されたコンテンツを保存するパスパターン。     * デフォルト: true     */    fill: true,    /**     * 辞書ファイルの物理的な場所。     * - "local": ローカルファイルシステムに保存されます。     * - "remote": Intlayer CMS に保存されます。     * - "hybrid": ローカルファイルシステムと Intlayer CMS の両方に保存されます。     * - "plugin" (または任意のカスタム文字列): プラグインやカスタムソースによって提供されます。     * デフォルト: "local"     */    location: "local",    /**     * コンテンツを自動的に変換するかどうか (例: Markdown から HTML)。     * デフォルト: false     */    contentAutoTransformation: false,  },  /**   * ルーティングとミドルウェアの設定。   */  routing: {    /**     * ロケールルーティング戦略。     * - "prefix-no-default": デフォルト以外のすべてのロケールにプレフィックスを付けます (例: /dashboard, /fr/dashboard)。     * - "prefix-all": すべてのロケールにプレフィックスを付けます (例: /en/dashboard, /fr/dashboard)。     * - "no-prefix": URL にロケールを含めません。     * - "search-params": ?locale=... を使用します。     * デフォルト: "prefix-no-default"     */    mode: "prefix-no-default",    /**     * ユーザーが選択したロケールを保存する場所。     * オプション: 'cookie', 'localStorage', 'sessionStorage', 'header', またはそれらの配列。     * デフォルト: ['cookie', 'header']     */    storage: ["cookie", "header"],    /**     * アプリケーション URL のベースパス。     * デフォルト: ""     */    basePath: "",    /**     * 特定のロケールパスに対するカスタム URL リライトルール。     */    rewrite: nextjsRewrite({      "/[locale]/about": {        en: "/[locale]/about",        fr: "/[locale]/a-propos",      },    }),    /**     * ドメインベースのルーティングのために、ロケールをドメインのホスト名にマップします。     * これらのロケールのURLは絶対URLになります(例:https://intlayer.cn/)。     * ドメインがロケールを暗示するため、パスにロケールプレフィックスは追加されません。     * デフォルト: undefined     */    domains: {      en: "intlayer.org",      zh: "intlayer.cn",    },  },  /**   * コンテンツファイルの検索と処理に関する設定。   */  content: {    /**     * 辞書をスキャンするファイル拡張子。     * デフォルト: ['.content.ts', '.content.js', '.content.json', など]     */    fileExtensions: [".content.ts", ".content.js", ".content.json"],    /**     * .content ファイルが存在するディレクトリ。     * デフォルト: ["."]     */    contentDir: ["src"],    /**     * ソースコードが存在するディレクトリ。     * ビルドの最適化とコード変換に使用されます。     * デフォルト: ["."]     */    codeDir: ["src"],    /**     * スキャンから除外するパターン。     * デフォルト: ['node_modules', '.intlayer', など]     */    excludedPath: ["node_modules"],    /**     * 開発中に変更を監視し、辞書を再生成するかどうか。     * デフォルト: 開発環境では true     */    watch: true,    /**     * 新しく作成または更新された .content ファイルをフォーマットするためのコマンド。     */    formatCommand: 'npx prettier --write "{{file}}"',  },  /**   * ビジュアルエディタの設定。   */  editor: {    /**     * ビジュアルエディタを有効にするかどうか。     * デフォルト: false     */    enabled: true,    /**     * オリジン検証のためのアプリケーション URL。     * デフォルト: ""     */    applicationURL: "http://localhost:3000",    /**     * ローカルエディタサーバーのポート。     * デフォルト: 8000     */    port: 8000,    /**     * エディタのパブリック URL。     * デフォルト: "http://localhost:8000"     */    editorURL: "http://localhost:8000",    /**     * Intlayer CMS の URL。     * デフォルト: "https://app.intlayer.org"     */    cmsURL: "https://app.intlayer.org",    /**     * バックエンド API の URL。     * デフォルト: "https://back.intlayer.org"     */    backendURL: "https://back.intlayer.org",    /**     * リアルタイムコンテンツ同期を有効にするかどうか。     * デフォルト: false     */    liveSync: true,  },  /**   * AI による翻訳と生成の設定。   */  ai: {    /**     * 使用する AI プロバイダー。     * オプション: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'     * デフォルト: 'openai'     */    provider: "openai",    /**     * 選択したプロバイダーで使用するモデル。     */    model: "gpt-4o",    /**     * プロバイダーの API キー。     */    apiKey: process.env.OPENAI_API_KEY,    /**     * 翻訳を生成する際に AI をガイドするグローバルコンテキスト。     */    applicationContext: "これは旅行予約アプリケーションです。",    /**     * AI API のベース URL。     */    baseURL: "http://localhost:3000",    /**     * データシリアライゼーション     *     * オプション:     * - "json": デフォルト、信頼性が高いがトークン消費が多い。     * - "toon": トークン消費が少ないが、JSON ほど一貫性がない。     *     * デフォルト: "json"     */    dataSerialization: "json",  },  /**   * ビルドと最適化の設定。   */  build: {    /**     * ビルドの実行モード。     * - "auto": アプリのビルド中に自動的にビルドされます。     * - "manual": 明示的なビルドコマンドが必要です。     * デフォルト: "auto"     */    mode: "auto",    /**     * 未使用の辞書を削除して、最終的なバンドルを最適化するかどうか。     * デフォルト: 本番環境では true     */    optimize: true,    /**     * バンドルサイズを削減するために辞書を圧縮(Minify)する。     * デフォルト: true     *     * 注意点:     * - `optimize` が無効な場合、このオプションは無視されます。     * - `editor.enabled` が true の場合、このオプションは無視されます。     */    minify: true,    /**     * 辞書内の未使用のキーを削除(Purge)する。     * デフォルト: true     *     * 注意点:     * - `optimize` が無効な場合、このオプションは無視されます。     */    purge: true,    /**     * 生成された辞書ファイルの出力形式。     * デフォルト: ['cjs', 'esm']     */    outputFormat: ["cjs", "esm"],    /**     * ビルド時に TypeScript の型チェックを行うかどうか。     * デフォルト: false     */    checkTypes: false,  },  /**   * ロガー設定。   */  log: {    /**     * ログレベル。     * - "default": 標準的なログ記録。     * - "verbose": 詳細なデバッグログ。     * - "disabled": ログを記録しません。     * デフォルト: "default"     */    mode: "default",    /**     * すべてのログメッセージのプレフィックス。     * デフォルト: "[intlayer]"     */    prefix: "[intlayer]",  },  /**   * システム設定 (高度なユースケース)   */  system: {    /**     * ローカライズされた辞書を保存するディレクトリ。     */    dictionariesDir: ".intlayer/dictionary",    /**     * モジュール拡張 (module augmentation) 用のディレクトリ。     */    moduleAugmentationDir: ".intlayer/types",    /**     * マージされていない辞書を保存するディレクトリ。     */    unmergedDictionariesDir: ".intlayer/unmerged_dictionary",    /**     * 辞書の型を保存するディレクトリ。     */    typesDir: ".intlayer/types",    /**     * メインアプリケーションファイルが保存されるディレクトリ。     */    mainDir: ".intlayer/main",    /**     * コンパイルされた設定ファイルが保存されるディレクトリ。     */    configDir: ".intlayer/config",    /**     * キャッシュファイルが保存されるディレクトリ。     */    cacheDir: ".intlayer/cache",  },  /**   * コンパイラ設定 (高度なユースケース)   */  compiler: {    /**     * コンパイラを有効にするかどうか。     *     * - false: コンパイラを無効にする。     * - true: コンパイラを有効にする。     * - "build-only": 起動時間を短縮するため、開発中はコンパイラをスキップする。     *     * デフォルト: false     */    enabled: true,    /**     * 出力ファイルのパスを定義します。`outputDir` を上書きします。     *     * - `./` で始まるパスは、コンポーネントのディレクトリを基準に解決されます。     * - `/` で始まるパスは、プロジェクトのルート (`baseDir`) を基準に解決されます。     *     * - パスに `{{locale}}` 変数を含めると、ロケールごとに個別の辞書生成が有効になります。     *     * 例:     * ```ts     * {     *   // コンポーネントの近くに多言語対応の .content.ts ファイルを作成する     *   output: ({ fileName, extension }) => `./${fileName}${extension}`,     *     *   // output: './{{fileName}}{{extension}}', // テンプレート文字列を使用した同等の記述     * }     * ```     *     * ```ts     * {     *   // プロジェクトのルートにロケールごとに集約された JSON を作成する     *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,     *     *   // output: '/locales/{{locale}}/{{key}}.content.json', // テンプレート文字列を使用した同等の記述     * }     * ```     *     * 変数リスト:     *   - `fileName`: ファイル名。     *   - `key`: コンテンツキー。     *   - `locale`: コンテンツロケール。     *   - `extension`: ファイル拡張子。     *   - `componentFileName`: コンポーネントファイル名。     *   - `componentExtension`: コンポーネントファイル拡張子。     *   - `format`: 辞書フォーマット。     *   - `componentFormat`: コンポーネント辞書フォーマット。     *   - `componentDirPath`: コンポーネントディレクトリパス。     */    output: ({ locale, key }) => `compiler/${locale}/${key}.json`,    /**     * 変換後のコンポーネントを保存するかどうか。     * これにより、コンパイラを一度だけ実行してアプリケーションを変換し、その後削除することが可能になります。     */    saveComponents: false,    /**     * 生成されたファイルにコンテンツのみを挿入します。ロケールごとの i18next または ICU MessageFormat JSON 出力に有用です。     */    noMetadata: false,    /**     * 辞書キープレフィックス     */    dictionaryKeyPrefix: "", // 抽出された辞書キーにオプションのプレフィックスを追加します  },  /**   * 辞書のコンテンツを検証するためのカスタムスキーマ。   */  schemas: {    "my-schema": z.object({      title: z.string(),    }),  },  /**   * プラグイン設定。   */  plugins: [],};export default config;
      routing: {  mode: "prefix-no-default", // フォールバック戦略  rewrite: nextjsRewrite({    "/about": {      en: "/about",      fr: "/a-propos",    },    "/product/[slug]": {      en: "/product/[slug]",      fr: "/produit/[slug]",    },    "/blog/[category]/[id]": {      en: "/blog/[category]/[id]",      fr: "/journal/[category]/[id]",    },  }),}
      import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: "localStorage",    basePath: "",  },};export default config;
      import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: [      {        type: "localStorage",        name: "user-locale",      },      {        type: "cookie",        name: "user-locale",        secure: true,        sameSite: "strict",        httpOnly: false,      },    ],    basePath: "",  },};export default config;
      import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "search-params",    storage: "localStorage",    basePath: "",  },};export default config;
      import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "no-prefix",    storage: {      type: "sessionStorage",      name: "app-locale",    },    basePath: "/my-app",  },};export default config;
      // intlayer.config.tsimport { nextjsRewrite } from "intlayer/routing";const config: IntlayerConfig = {  internationalization: {    locales: ["en", "fr"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default", // リライトされないパスのフォールバック    storage: "cookie",    rewrite: nextjsRewrite({      "/about": {        en: "/about",        fr: "/a-propos",      },      "/product/[slug]": {        en: "/product/[slug]",        fr: "/produit/[slug]",      },      "/blog/[category]/[id]": {        en: "/blog/[category]/[id]",        fr: "/journal/[category]/[id]",      },    }),  },};export default config;
      dictionary: {  fill: {    en: "/locales/en/{{key}}.content.json",    fr: ({ key }) => `/locales/fr/${key}.content.json`,    es: false,  },};