このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見る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: { typesDir: "content/types", }, middleware: { noPrefix: false, },};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 パッケージがバックエンドと認証することを可能にします。アクセストークンはプロジェクトに関連するユーザーを認証するために使用されます。アクセストークンを取得するには、/dashboard/project にアクセスしてアカウントを作成してください。
- 例: true
- 注意: 重要: clientId と clientSecret は秘密にして公開しないでください。環境変数などの安全な場所に保存してください。
clientSecret:
- 型: string | undefined
- デフォルト: undefined
- 説明: clientId と clientSecret は、oAuth2 認証を使用して Intlayer パッケージがバックエンドと認証することを可能にします。アクセストークンはプロジェクトに関連するユーザーを認証するために使用されます。アクセストークンを取得するには、/dashboard/project にアクセスしてアカウントを作成してください。
- 例: true
- 注意: 重要: clientId と clientSecret は秘密にして公開しないでください。環境変数などの安全な場所に保存してください。
hotReload:
- 型: 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
- デフォルト値: true
- 説明: デフォルトのロケールをURLに含めるかどうか。
- 例: false
- 注意: falseの場合、デフォルトのロケールのURLにはロケールプレフィックスが含まれません。
basePath:
- タイプ: string
- デフォルト値: ''
- 説明: アプリケーションURLのベースパス。
- 例: '/my-app'
- 注意: これはアプリケーションのURLの構築方法に影響します。
serverSetCookie:
- タイプ: string
- デフォルト値: 'always'
- 説明: サーバーでロケールクッキーを設定するルール。
- オプション: 'always', 'never'
- 例: 'never'
- 注意: ロケールクッキーをすべてのリクエストで設定するか、または設定しないかを制御します。
noPrefix:
- タイプ: boolean
- デフォルト値: false
- 説明: URLからロケールプレフィックスを省略するかどうか。
- 例: true
- 注意: trueの場合、URLにはロケール情報が含まれません。
コンテンツ設定
アプリケーション内のコンテンツ処理に関連する設定(ディレクトリ名、ファイル拡張子、派生設定など)。
プロパティ
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']
- 説明: コンテンツが保存されているディレクトリパス。
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モデルにアプリケーションに関する追加のコンテキストを提供し、より正確で文脈に適した翻訳を生成するのに役立ちます。これには、アプリケーションのドメイン、ターゲットユーザー、トーン、または特定の用語に関する情報が含まれる場合があります。
このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンク