Intlayer 設定ドキュメント
概要
Intlayer 設定ファイルを使用すると、国際化、ミドルウェア、およびコンテンツ処理など、プラグインのさまざまな側面をカスタマイズできます。この文書では、設定内の各プロパティの詳細な説明を提供します。
設定ファイルサポート
Intlayer は、JSON、JS、MJS、および TS 設定ファイル形式を受け入れます。
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
設定ファイルの例
typescript
// 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;
javascript
// intlayer.config.cjs
const { Locales } = require("intlayer");
/** @type {import('intlayer').IntlayerConfig} */
const config = {
internationalization: {
locales: [Locales.ENGLISH],
},
content: {
typesDir: "content/types",
},
middleware: {
noPrefix: false,
},
};
module.exports = config;
json5
// .intlayerrc
{
"internationalization": {
"locales": ["en"],
},
"content": {
"typesDir": "content/types",
},
"middleware": {
"noPrefix": false,
},
}
設定リファレンス
以下のセクションでは、Intlayer に利用可能なさまざまな設定オプションについて説明します。
国際化設定
アプリケーションの利用可能なロケールおよびデフォルトのロケールを含む国際化に関連する設定を定義します。
プロパティ
- locales:
- タイプ: string[]
- デフォルト: ['en']
- 説明: アプリケーションでサポートされているロケールのリスト。
- 例: ['en', 'fr', 'es']
strictMode:
- タイプ: string
- デフォルト: required_only
- 説明: TypeScript を使用して国際化されたコンテンツの厳格な実装を確保します。
- 注意: "strict" に設定すると、翻訳 t 関数は宣言された各ロケールが定義されることを要求します。1つのロケールが欠けている場合、または設定に宣言されていないロケールがある場合は、エラーが発生します。
- 注意: "required_only" に設定すると、翻訳 t 関数は宣言された各ロケールが定義されることを要求します。1つのロケールが欠けている場合、警告が表示されます。ただし、設定に宣言されていなくても存在するロケールは受け入れます。
- 注意: "loose" に設定すると、翻訳 t 関数は既存のロケールを受け入れます。
defaultLocale:
- タイプ: string
- デフォルト: 'en'
- 説明: リクエストされたロケールが見つからない場合にフォールバックとして使用されるデフォルトのロケール。
- 例: 'en'
- 注意: URL、クッキー、またはヘッダーにロケールが指定されていない場合に、ロケールを決定するために使用されます。
エディター設定
サーバーポートやアクティブ状態など、統合エディターに関連する設定を定義します。
プロパティ
backendURL:
- タイプ: string
- デフォルト: https://back.intlayer.org
- 説明: バックエンドサーバーの URL。
- 例: http://localhost:4000
enabled:
- タイプ: boolean
- デフォルト: true
- 説明: エディターがアクティブかどうかを示します。
- 例: true
- 注意: NODE_ENV または他の専用環境変数を使用して設定できます。
clientId:
- タイプ: string | undefined
- デフォルト: undefined
- 説明: clientId と clientSecret は、intlayer パッケージが oAuth2 認証を使用してバックエンドと認証することを許可します。アクセス トークンは、プロジェクトに関連するユーザーを認証するために使用されます。アクセス トークンを取得するには、https://back.intlayer.org/dashboard/project に移動し、アカウントを作成してください。
- 例: true
- 注意: 重要: clientId と clientSecret は秘密に保ち、公開しないでください。環境変数など、安全な場所に保管してください。
clientSecret:
- タイプ: string | undefined
- デフォルト: undefined
- 説明: clientId と clientSecret は、intlayer パッケージが oAuth2 認証を使用してバックエンドと認証することを許可します。アクセス トークンは、プロジェクトに関連するユーザーを認証するために使用されます。アクセス トークンを取得するには、https://back.intlayer.org/dashboard/project に移動し、アカウントを作成してください。
- 例: true
- 注意: 重要: clientId と clientSecret は秘密に保ち、公開しないでください。環境変数など、安全な場所に保管してください。
ミドルウェア設定
ミドルウェアの動作を制御する設定、ロケール管理のためにアプリケーションがクッキー、ヘッダー、および 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'
- 説明: ローカライズ辞書を保存するディレクトリ。
- i18nDictionariesDirName:
- タイプ: string
- デフォルト: 'i18n_dictionary'
- 説明: i18n 辞書を保存するためのディレクトリ。
- 例: 'translations'
- 注意: 結果ディレクトリレベルでない場合、i18nDictionariesDir を更新してください。
- 注意: i18n 辞書出力に i18next を含めて辞書を構築することを確認してください。
i18nDictionariesDir:
- タイプ: string
- 派生元: 'resultDir' / 'i18nDictionariesDirName'
- 説明: 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']
- 説明: コンテンツ検索から除外されるディレクトリ。
- 注意: この設定はまだ使用されていませんが、将来の実装が予定されています。
このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンク