Intlayer設定ドキュメント
概要
Intlayer設定ファイルは、国際化、ミドルウェア、コンテンツ処理など、プラグインのさまざまな側面をカスタマイズすることを可能にします。このドキュメントでは、設定内の各プロパティについて詳しく説明します。
設定ファイルのサポート
IntlayerはJSON、JS、MJS、TS設定ファイル形式を受け入れます:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
設定ファイルの例
intlayer.config.ts
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関数は宣言された各ロケールが定義されていることを要求します。1つのロケールが欠けている場合、または設定に宣言されていないロケールがある場合、エラーがスローされます。
- 注意: "inclusive"に設定すると、翻訳t関数は宣言された各ロケールが定義されていることを要求します。1つのロケールが欠けている場合、警告が表示されます。ただし、設定に宣言されていないロケールが存在しても受け入れます。
- 注意: "loose"に設定すると、翻訳t関数は既存の任意のロケールを受け入れます。
defaultLocale:
- 型: string
- デフォルト: 'en'
- 説明: リクエストされたロケールが見つからない場合に使用されるデフォルトロケール。
- 例: 'en'
- 注意: URL、クッキー、またはヘッダーにロケールが指定されていない場合に使用されます。
エディター設定
統合エディターに関連する設定を定義します。サーバーポートやアクティブ状態などが含まれます。
プロパティ
applicationURL:
- 型: string
- デフォルト: '*'
- 説明: アプリケーションのURL。セキュリティ上の理由からエディターのオリジンを制限するために使用されます。
- 例:
- '*'
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_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は秘密にして公開しないでください。環境変数などの安全な場所に保管してください。
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'。
- contentDirName:
- 型: string
- デフォルト: 'src'
- 説明: コンテンツが保存されているディレクトリの名前。
- 例: 'data', 'content', 'locales'
- 注意: ベースディレクトリレベルにない場合、contentDirを更新します。
contentDir:
- 型: string
- 派生元: 'baseDir' / 'contentDirName'
- 説明: コンテンツが保存されているディレクトリパス。
- resultDirName:
- 型: string
- デフォルト: '.intlayer'
- 説明: 結果が保存されるディレクトリの名前。
- 例: 'outputOFIntlayer'
- 注意: このディレクトリがベースレベルにない場合、resultDirを更新します。
resultDir:
- 型: string
- 派生元: 'baseDir' / 'resultDirName'
- 説明: 中間または出力結果を保存するためのディレクトリパス。
moduleAugmentationDirName:
- 型: string
- デフォルト: 'types'
- 説明: モジュール拡張用ディレクトリ。より良いIDEの提案と型チェックを可能にします。
- 例: 'intlayer-types'
- 注意: tsconfig.jsonにこれを含めることを確認してください。
moduleAugmentationDir:
- 型: string
- 派生元: 'baseDir' / 'moduleAugmentationDirName'
- 説明: モジュール拡張および追加型定義のためのパス。
- dictionariesDirName:
- 型: string
- デフォルト: 'dictionary'
- 説明: 辞書を保存するためのディレクトリ。
- 例: 'translations'
- 注意: 結果ディレクトリレベルにない場合、dictionariesDirを更新します。
dictionariesDir:
- 型: string
- 派生元: 'resultDir' / 'dictionariesDirName'
- 説明: ローカリゼーション辞書を保存するためのディレクトリ。
- i18nextResourcesDirName:
- 型: string
- デフォルト: 'i18next_dictionary'
- 説明: i18n辞書を保存するためのディレクトリ。
- 例: 'translations'
- 注意: 結果ディレクトリレベルにない場合、i18nextResourcesDirを更新します。
- 注意: i18next辞書出力が含まれるようにi18n辞書出力を構成してください。
i18nextResourcesDir:
- 型: string
- 派生元: 'resultDir' / 'i18nextResourcesDirName'
- 説明: i18n辞書を保存するためのディレクトリ。
- 注意: このディレクトリがi18next出力タイプ用に構成されていることを確認してください。
typeDirName:
- 型: string
- デフォルト: 'types'
- 説明: 辞書タイプを保存するためのディレクトリ。
- 例: 'intlayer-types'
- 注意: 結果ディレクトリレベルにない場合、typesDirを更新します。
typesDir:
- 型: string
- 派生元: 'resultDir' / 'typeDirName'
- 説明: 辞書タイプを保存するためのディレクトリ。
- mainDirName:
- 型: string
- デフォルト: 'main'
- 説明: メインファイルを保存するためのディレクトリ。
- 例: 'intlayer-main'
- 注意: 結果ディレクトリレベルにない場合、mainDirを更新します。
- mainDir:
- 型: string
- 派生元: 'resultDir' / 'mainDirName'
- 説明: メインアプリケーションファイルが保存されているディレクトリ。
- excludedPath:
- 型: string[]
- デフォルト: ['node_modules']
- 説明: コンテンツ検索から除外されるディレクトリ。
- 注意: この設定はまだ使用されていませんが、将来的に実装される予定です。
ロガー設定
ロガーを制御する設定。使用するプレフィックスなどが含まれます。
プロパティ
- mode:
- 型: string
- デフォルト: default
- 説明: ロガーのモードを示します。
- オプション: default, verbose, disabled
- 例: default
- 注意: ロガーのモード。詳細モードはより多くの情報をログに記録しますが、デバッグ目的で使用できます。無効モードはロガーを無効にします。
- prefix:
- 型: string
- デフォルト: '[intlayer] '
- 説明: ロガーのプレフィックス。
- 例: '[my custom prefix] '
- 注意: ロガーのプレフィックス。
このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンク