このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "ロケール省略時、デフォルトロケールより先にリクエストのロケールまたは保存済みロケールを解決"v9.5.122026/9/28
- "初期ドキュメント"v9.4.02026/8/23
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
Documentation: intlayer の getIntlayer 関数
Description
getIntlayer 関数は、キーによって1つの辞書を選択し、指定されたロケールで解釈されたコンテンツを返します。これは useIntlayer フックのフレームワーク非依存の対応物です:同じコンテンツ、同じセレクタですが、React コンテキストが利用できない場所ならどこでも使用可能です。Node スクリプト、サーバー関数、ルートローダー、メタデータビルダー、Express/Fastify ハンドラ、テスト。
Intlayer によって .intlayer/ に生成された辞書を読み込むため、key 引数は型付けされており、独自のコンテンツ宣言から自動補完されます。返されるオブジェクトは各リーフまで完全に型付けされています。
主な機能:
- 型付けされた辞書キーと型付けされた返されたコンテンツ
- すべてのコンテンツノードを解釈(
t()、enu()、cond()、insert()、nest()、md()、html()、file()、gender()) - ロケールまたはセレクタオブジェクト(collections、variants)を受け入れる
- 結果は
key + locale + selectorごとにメモ化される - 開発時に辞書が見つからない場合、クラッシュする代わりに安全なプロキシにフォールバックする
関数シグネチャ
コードをクリップボードにコピー
パラメータ
key: DictionaryKeys- 説明: コンテンツファイルで宣言されている、読み取る辞書のキー。
- 型:
DictionaryKeys、すべての宣言された辞書キーの共用体。 - 必須: はい
localeOrSelector: LocalesValues | DictionarySelector- 説明: コンテンツを解釈するロケール、または動的辞書のセレクタオブジェクト。
'fr':ロケール{ item: 2 }:collectionアイテム(すべてのアイテムを配列として取得するにはitemを省略){ variant: 'black-friday' }:名前付きvariant(defaultの場合は省略){ variant: { id: 'prod_abc', userId: '123' } }:構造化variant- すべてのセレクタはロケールを持つことができます:
{ item: 2, locale: 'fr' }
- 型:
LocalesValues | DictionarySelector - 必須: いいえ(任意)。省略した場合はロケールなしを参照してください。
- 説明: コンテンツを解釈するロケール、または動的辞書のセレクタオブジェクト。
plugins: Plugins[]- 説明: ベースインタープリタプラグインを置き換えるカスタムノードトランスフォーマー。高度な使用のみ;デフォルトの動作を保つには省略してください。
- 型:
Plugins[] - 必須: いいえ(任意)
戻り値
- 型: 宣言から型付けされた、辞書の解釈されたコンテンツ。
- 説明: 辞書の
contentフィールドをミラーリングしたプレーンオブジェクト。すべての Intlayer ノードが要求されたロケールの最終値に解決されます。
使用例
基本的な使用法
コードをクリップボードにコピー
コードをクリップボードにコピー
import { getIntlayer } from "intlayer";
const { title } = getIntlayer("app", "fr"); // "Bonjour"
ロケールなし
ロケールが渡されない場合、getIntlayer はすぐにデフォルトロケールへフォールバックしません。次の順序で解決します。
- 現在のリクエストのロケール。サーバー上で Intlayer のインテグレーションがリクエストを処理している場合です:
express-intlayer、fastify-intlayer、hono-intlayer、adonis-intlayer、elysia-intlayerの middleware、remix-intlayerとastro-intlayerの middleware、そして React Server Components のIntlayerProvider/setLocale。各リクエストは自身の cookies と headers から解決されるため、同時アクセスのユーザー同士がロケールを共有することはありません。 - ブラウザに保存されたロケール(cookie、
localStorage、sessionStorage)。ロケールスイッチャーが保存するロケールです。 - 設定で宣言した
defaultLocale。
コードをクリップボードにコピー
同じ解決は getDictionary、ビルドプラグインが書き換えた呼び出し、そして provider の外でレンダリングされる useIntlayer / useDictionaryDynamic にも適用されます。明示的に渡したロケールが常に優先されます。
getIntlayer はリアクティブではありません。ロケールを切り替えた後は、新しいロケールを読むためにもう一度呼び出してください。サーバーでレンダリングされるページでは、どの provider の外で呼び出してもサーバーではデフォルトロケール、ブラウザでは保存済みロケールがレンダリングされ、hydration mismatch の原因になることがあります。その場合はフレームワークの provider をマウントするか、ロケールを渡してください。
サーバーハンドラー内
コードをクリップボードにコピー
セレクタ付き (コレクションとバリアント)
コードをクリップボードにコピー
動作に関する注記
キャッシング
結果は key + locale + selector をキーとするモジュールレベルのキャッシュにメモ化されます。getIntlayer("app", "fr") を繰り返し呼び出すと、辞書は一度だけ解釈され、その後は同じオブジェクトが返されます。
欠落している辞書
開発中に、生成された辞書がないキーをリクエストすると、警告が1回ログされ、安全なフォールバックプロキシが返されます。content.titleを読み取ると、エラーをスローする代わりに文字列"app.title"が返されます。これにより、欠落している宣言が修正されている間、ページを使用可能な状態に保つことができます。Intlayerビルド(またはdevサーバー)を実行して、辞書を生成します。
バンドルサイズ
getIntlayer は、すべてのロケールを保持するマージされた辞書を読み込みます。クライアントバンドルでは、ビルドプラグインが呼び出しを書き換え、必要なコンテンツのみがシップされます。レンダリング外でコンテンツを読み込む場合(メタデータ、ローダー、サーバー関数)で、単一のロケールをオンデマンドで読み込みたい場合は、代わりにgetIntlayerAsyncを使用してください。
関連関数
TypeScript
コードをクリップボードにコピー
