このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
Intlayer MCPサーバーを統合することで、ChatGPT、DeepSeek、Cursor、VSCodeなどから直接ドキュメントを取得できます。
MCPサーバーのドキュメントを表示このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
Intlayer設定ドキュメント
概要
Intlayerの設定ファイルは、国際化、ミドルウェア、コンテンツ処理など、プラグインのさまざまな側面をカスタマイズすることを可能にします。このドキュメントでは、設定内の各プロパティについて詳細に説明します。
設定ファイルのサポート
Intlayer は JSON、JS、MJS、TS の設定ファイル形式をサポートしています:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
設定ファイルの例
コードをクリップボードにコピー
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH], }, content: { contentDir: ["src", "../ui-library"], }, middleware: { noPrefix: false, }, editor: { applicationURL: "https://example.com", }, ai: { apiKey: process.env.OPENAI_API_KEY, applicationContext: "This is a test application", }, build: { importMode: "dynamic", },};export default config;
設定リファレンス
以下のセクションでは、Intlayer で利用可能なさまざまな設定オプションについて説明します。
国際化設定
利用可能なロケールやアプリケーションのデフォルトロケールなど、国際化に関連する設定を定義します。
プロパティ
locales:
- 型: string[]
- デフォルト: ['en']
- 説明: アプリケーションでサポートされるロケールのリスト。
- 例: ['en', 'fr', 'es']
- requiredLocales:
- 型: string[]
- デフォルト: []
- 説明: アプリケーションで必須のロケールのリスト。
- 例: []
- 注意: 空の場合、strict モードではすべてのロケールが必須とみなされます。
- 注意: 必須ロケールは locales フィールドにも定義されている必要があります。
strictMode:
- 型: string
- デフォルト: inclusive
- 説明: TypeScript を使用して国際化コンテンツの強力な実装を保証します。
- 注意: "strict" に設定すると、翻訳関数 t は宣言されたすべてのロケールが定義されている必要があります。ロケールが欠けている場合や、設定に宣言されていないロケールがある場合、エラーがスローされます。
- 注意: "inclusive" に設定すると、翻訳関数 t は宣言されたすべてのロケールが定義されている必要があります。ロケールが欠けている場合、警告が表示されますが、設定に宣言されていないロケールが存在しても許容されます。
- 注意: "loose" に設定すると、翻訳関数 t は存在する任意のロケールを受け入れます。
defaultLocale:
- 型: string
- デフォルト: 'en'
- 説明: リクエストされたロケールが見つからない場合に使用されるフォールバックのデフォルトロケール。
- 例: 'en'
- 注意: URL、クッキー、またはヘッダーにロケールが指定されていない場合に使用されます。
エディター設定
統合エディターに関連する設定を定義します。サーバーポートやアクティブ状態などが含まれます。
プロパティ
applicationURL:
- 型: string
- デフォルト: http://localhost:3000
- 説明: アプリケーションの URL。セキュリティ上の理由からエディターのオリジンを制限するために使用されます。
- 例:
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- 注意: アプリケーションの URL。セキュリティ上の理由からエディターのオリジンを制限するために使用されます。'*' に設定すると、エディターは任意のオリジンからアクセス可能になります。
port:
- 型: number
- デフォルト: 8000
- 説明: ビジュアルエディターサーバーが使用するポート。
editorURL:
- 型: string
- デフォルト: 'http://localhost:8000'
- 説明: エディターサーバーの URL。セキュリティ上の理由からエディターのオリジンを制限するために使用されます。
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- 注意: アプリケーションから到達するためのエディターサーバーの URL。セキュリティ上の理由から、アプリケーションとやり取りできるオリジンを制限するために使用されます。'*' に設定すると、エディターは任意のオリジンからアクセス可能になります。ポートが変更された場合や、エディターが異なるドメインでホストされている場合に設定する必要があります。
cmsURL:
- 型: string
- デフォルト: 'https://intlayer.org'
- 説明: Intlayer CMS の URL。
- 例: 'https://intlayer.org'
- 注意: Intlayer CMS の URL。
backendURL:
- 型: string
- デフォルト: https://back.intlayer.org
- 説明: バックエンドサーバーの URL。
- 例: http://localhost:4000
enabled:
- 型: boolean
- デフォルト: true
- 説明: アプリケーションがビジュアルエディターとやり取りするかどうかを示します。
- 例: process.env.NODE_ENV !== 'production'
- 注意: true の場合、エディターはアプリケーションとやり取りできます。false の場合、エディターはアプリケーションとやり取りできません。いずれの場合も、エディターはビジュアルエディターによってのみ有効化されます。特定の環境でエディターを無効化することは、セキュリティを強化する方法の一つです。
clientId:
- 型: string | undefined
- デフォルト: undefined
- 説明: clientId と clientSecret は、oAuth2 認証を使用して Intlayer パッケージがバックエンドと認証することを可能にします。アクセストークンはプロジェクトに関連するユーザーを認証するために使用されます。アクセストークンを取得するには、https://intlayer.org/dashboard/project にアクセスしてアカウントを作成してください。
- 例: true
- 注意: 重要: clientId と clientSecret は秘密にして公開しないでください。環境変数などの安全な場所に保存してください。
clientSecret:
- 型: string | undefined
- デフォルト: undefined
- 説明: clientId と clientSecret は、oAuth2 認証を使用して Intlayer パッケージがバックエンドと認証することを可能にします。アクセストークンはプロジェクトに関連するユーザーを認証するために使用されます。アクセストークンを取得するには、https://intlayer.org/dashboard/project にアクセスしてアカウントを作成してください。
- 例: true
- 注意: 重要: clientId と clientSecret は秘密にして公開しないでください。環境変数などの安全な場所に保存してください。
liveSync:
- 型: boolean
- デフォルト: false
- 説明: アプリケーションがロケール設定の変更を検出した際にホットリロードするかどうかを示します。
- 例: true
- 注意: 例えば、新しい辞書が追加または更新された場合、アプリケーションはページに表示するコンテンツを更新します。
- 注意: ホットリロードにはサーバーへの継続的な接続が必要なため、enterprise プランのクライアントのみ利用可能です。
dictionaryPriorityStrategy:
- 型: string
- デフォルト: 'local_first'
- 説明: ローカル辞書とリモート辞書の両方が存在する場合の優先順位戦略。'distant_first' に設定すると、アプリケーションはリモート辞書をローカル辞書より優先します。'local_first' に設定すると、アプリケーションはローカル辞書をリモート辞書より優先します。
- 例: 'distant_first'
ミドルウェア設定
ミドルウェアの動作を制御する設定で、アプリケーションがクッキー、ヘッダー、ロケール管理のためのURLプレフィックスをどのように扱うかを含みます。
プロパティ
headerName:
- 型: string
- デフォルト: 'x-intlayer-locale'
- 説明: ロケールを判別するために使用されるHTTPヘッダーの名前。
- 例: 'x-custom-locale'
- 注意: APIベースのロケール判別に便利です。
cookieName:
- 型: string
- デフォルト: 'intlayer-locale'
- 説明: ロケールを保存するために使用されるクッキーの名前。
- 例: 'custom-locale'
- 注意: セッション間でロケールを保持するために使用されます。
prefixDefault:
- 型: boolean
- デフォルト: false
- 説明: デフォルトのロケールをURLに含めるかどうか。
- 例: true
- 注意:
- trueでdefaultLocale = 'en'の場合: path = /en/dashboardまたは/fr/dashboard
- falseでdefaultLocale = 'en'の場合: path = /dashboardまたは/fr/dashboard
basePath:
- 型: string
- デフォルト: ''
- 説明: アプリケーションURLのベースパス。
- 例: '/my-app'
- 注意:
- アプリケーションがhttps://example.com/my-appでホストされている場合
- ベースパスは'/my-app'
- URLはhttps://example.com/my-app/enになります
- ベースパスが設定されていない場合、URLはhttps://example.com/enになります
serverSetCookie:
- 型: string
- デフォルト: 'always'
- 説明: サーバーでロケールクッキーを設定するルール。
- オプション: 'always', 'never'
- 例: 'never'
- 注意: ロケールクッキーをすべてのリクエストで設定するか、まったく設定しないかを制御します。
noPrefix:
- 型: boolean
- デフォルト: false
- 説明: URLからロケールプレフィックスを省略するかどうか。
- 例: true
- 注意:
- trueの場合: URLにプレフィックスなし
- falseの場合: URLにプレフィックスあり
- basePath = '/my-app'の例:
- noPrefix = falseの場合: URLはhttps://example.com/my-app/enになります
- noPrefix = trueの場合: URLはhttps://example.comになります
detectLocaleOnPrefetchNoPrefix:
- 型: boolean
- デフォルト: false
- 説明: Next.jsのプリフェッチリクエスト中にロケール検出が行われるかどうかを制御します。
- 例: true
- 注意: この設定はNext.jsがロケールプリフェッチを処理する方法に影響します:
- 例のシナリオ:
- ユーザーのブラウザ言語は'fr'
- 現在のページは/fr/about
- リンクが/aboutをプリフェッチ
- detectLocaleOnPrefetchNoPrefix: trueの場合:
- プリフェッチがブラウザから'fr'ロケールを検出
- プリフェッチを/fr/aboutにリダイレクト
- detectLocaleOnPrefetchNoPrefix: false(デフォルト)の場合:
- プリフェッチがデフォルトロケールを使用
- プリフェッチを/en/aboutにリダイレクト('en'がデフォルトと仮定)
- trueを使用する場合:
- アプリが非ローカライズされた内部リンクを使用する場合(例: <a href="/about">)
- 通常のリクエストとプリフェッチリクエスト間で一貫したロケール検出動作を望む場合
- false(デフォルト)を使用する場合:
- アプリがロケールプレフィックス付きリンクを使用する場合(例: <a href="/fr/about">)
- プリフェッチパフォーマンスを最適化したい場合
- 潜在的なリダイレクトループを避けたい場合
- 例のシナリオ:
コンテンツ設定
アプリケーション内のコンテンツ処理に関連する設定(ディレクトリ名、ファイル拡張子、派生設定など)。
プロパティ
watch:
- タイプ: boolean
- デフォルト値: process.env.NODE_ENV === 'development'
- 説明: Intlayerがアプリ内のコンテンツ宣言ファイルの変更を監視して関連辞書を再構築するかどうかを示します。
fileExtensions:
- タイプ: string[]
- デフォルト値: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
- 説明: 辞書を構築する際に検索するファイル拡張子。
- 例: ['.data.ts', '.data.js', '.data.json']
- 注意: ファイル拡張子をカスタマイズすることで競合を回避できます。
baseDir:
- タイプ: string
- デフォルト値: process.cwd()
- 説明: プロジェクトのベースディレクトリ。
- 例: '/path/to/project'
- 注意: これはすべてのIntlayer関連ディレクトリを解決するために使用されます。
dictionaryOutput:
- タイプ: string[]
- デフォルト値: ['intlayer']
- 説明: 使用する辞書出力のタイプ(例: 'intlayer' または 'i18next')。
contentDir:
- タイプ: string[]
- デフォルト値: ['src']
- 例: ['src', '../../ui-library', require.resolve("@my-package/content")]
- 説明: コンテンツが保存されているディレクトリパス。
dictionariesDir:
- タイプ: string
- デフォルト値: '.intlayer/dictionaries'
- 説明: 中間または出力結果を保存するディレクトリパス。
moduleAugmentationDir:
- タイプ: string
- デフォルト値: '.intlayer/types'
- 説明: モジュール拡張用ディレクトリ。これにより、IDEの提案や型チェックが向上します。
- 例: 'intlayer-types'
- 注意: これをtsconfig.jsonに含める必要があります。
unmergedDictionariesDir:
- タイプ: string
- デフォルト値: '.intlayer/unmerged_dictionary'
- 説明: 未マージの辞書を保存するディレクトリ。
- 例: 'translations'
dictionariesDir:
- タイプ: string
- デフォルト値: '.intlayer/dictionary'
- 説明: ローカリゼーション辞書を保存するディレクトリ。
- 例: 'translations'
i18nextResourcesDir:
- タイプ: string
- デフォルト値: 'i18next_dictionary'
- 説明: i18n辞書を保存するディレクトリ。
- 例: 'translations'
- 注意: このディレクトリがi18next出力タイプ用に設定されていることを確認してください。
typesDir:
- タイプ: string
- デフォルト値: 'types'
- 説明: 辞書タイプを保存するディレクトリ。
- 例: 'intlayer-types'
mainDir:
- タイプ: string
- デフォルト値: 'main'
- 説明: メインアプリケーションファイルが保存されているディレクトリ。
- 例: 'intlayer-main'
excludedPath:
- タイプ: string[]
- デフォルト値: ['node_modules']
- 説明: コンテンツ検索から除外されるディレクトリ。
- 注意: この設定はまだ使用されていませんが、将来的に実装される予定です。
ロガー設定
ロガーを制御する設定(使用するプレフィックスなど)。
プロパティ
mode:
- タイプ: string
- デフォルト値: default
- 説明: ロガーのモードを示します。
- オプション: default, verbose, disabled
- 例: default
- 注意: ロガーのモード。詳細モードではより多くの情報が記録されますが、デバッグ目的で使用できます。無効モードではロガーが無効になります。
prefix:
- タイプ: string
- デフォルト値: '[intlayer] '
- 説明: ロガーのプレフィックス。
- 例: '[my custom prefix] '
- 注意: ロガーのプレフィックス。
AI設定
IntlayerのAI機能を制御する設定(プロバイダー、モデル、APIキーなど)。 この設定は、Intlayer Dashboardでアクセスキーを使用して登録されている場合はオプションです。Intlayerは、ニーズに最も効率的でコスト効果の高いAIソリューションを自動的に管理します。デフォルトオプションを使用することで、Intlayerが最も関連性の高いモデルを使用するよう継続的に更新されるため、長期的な保守性が向上します。
独自のAPIキーや特定のモデルを使用したい場合は、カスタムAI設定を定義できます。 このAI設定は、Intlayer環境全体でグローバルに使用されます。CLIコマンドは、これらの設定をコマンド(例: fill)のデフォルトとして使用し、SDK、ビジュアルエディター、CMSも同様です。特定のユースケースに対してこれらのデフォルト値を上書きするには、コマンドパラメータを使用できます。 Intlayerは、柔軟性と選択肢を向上させるために複数のAIプロバイダーをサポートしています。現在サポートされているプロバイダーは以下の通りです:
- OpenAI (デフォルト)
- Anthropic Claude
- Mistral AI
- DeepSeek
- Google Gemini
- Meta Llama
プロパティ
provider:
- タイプ: string
- デフォルト値: 'openai'
- 説明: IntlayerのAI機能に使用するプロバイダー。
- オプション: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini'
- 例: 'anthropic'
- 注意: プロバイダーによって異なるAPIキーが必要であり、異なる料金モデルが適用される場合があります。
model:
- タイプ: string
- デフォルト値: なし
- 説明: IntlayerのAI機能に使用するモデル。
- 例: 'gpt-4o-2024-11-20'
- 注意: 使用する特定のモデルはプロバイダーによって異なります。
temperature:
- タイプ: number
- デフォルト値: なし
- 説明: AIの応答のランダム性を制御します。
- 例: 0.1
- 注意: 温度が高いほど、AIはより創造的で予測不可能になります。
apiKey:
- タイプ: string
- デフォルト値: なし
- 説明: 選択したプロバイダーのAPIキー。
- 例: process.env.OPENAI_API_KEY
- 注意: 重要: APIキーは秘密に保ち、公開しないでください。環境変数などの安全な場所に保管してください。
applicationContext:
- タイプ: string
- デフォルト値: なし
- 説明: AIモデルにアプリケーションに関する追加のコンテキストを提供し、より正確で文脈に適した翻訳を生成するのに役立ちます。これには、アプリのドメイン、ターゲットユーザー、トーン、または特定の用語に関する情報が含まれる場合があります。
ビルド設定
Intlayerがアプリケーションの国際化をどのように最適化しビルドするかを制御する設定。
ビルドオプションは@intlayer/babelおよび@intlayer/swcプラグインに適用されます。
開発モードでは、Intlayerは開発体験を簡素化するために辞書の静的インポートを使用します。
最適化時、Intlayerはチャンキングを最適化するために辞書の呼び出しを置き換え、最終的なバンドルが実際に使用される辞書のみをインポートするようにします。
プロパティ
optimize:
- 型: boolean
- デフォルト: process.env.NODE_ENV === 'production'
- 説明: ビルドを最適化するかどうかを制御します。
- 例: true
- 注意: 有効にすると、Intlayerはチャンキングを最適化するためにすべての辞書の呼び出しを置き換えます。これにより、最終的なバンドルは使用される辞書のみをインポートします。すべてのインポートは辞書の読み込み時の非同期処理を避けるために静的インポートのままとなります。
- 注意: IntlayerはimportModeオプションによって定義されたモードですべてのuseIntlayer呼び出しを置き換え、getIntlayerをgetDictionaryに置き換えます。
- 注意: このオプションは@intlayer/babelおよび@intlayer/swcプラグインに依存します。
- 注意: すべてのキーがuseIntlayer呼び出しで静的に宣言されていることを確認してください。例:useIntlayer('navbar')。
importMode:
- 型: 'static' | 'dynamic' | 'async'
- デフォルト: 'static'
- 説明: 辞書がどのようにインポートされるかを制御します。
- 例: 'dynamic'
- 注意: 利用可能なモード:
- "static": 辞書が静的にインポートされます。useIntlayerをuseDictionary