著者:
    作成:2026-08-23最終更新:2026-09-28

    ドキュメント: intlayer の getIntlayerAsync 関数

    説明

    getIntlayerAsync 関数は辞書をキーで選択し、与えられたロケールに対してそのコンテンツを解決します。そのロケールのみを読み込みます。

    これは getIntlayer の非同期対応であり、ルート head / メタデータビルダー、ローダー、サーバー関数など、レンダリング外で辞書が読み込まれる場所を対象としています。

    getIntlayer がすべてのロケールを保持するマージされた辞書を取得する場合、ビルドプラグイン(@intlayer/babel、@intlayer/swc)はこの呼び出しを getDictionaryAsync(loaderMap, key, locale) に書き換え、.intlayer/dynamic_dictionaries/ のロケール別チャンクを指すようにします。したがって、バンドルには実際にリクエストされたロケールのみが含まれます。

    これらのプラグインがない場合(最適化されていないビルド)、呼び出しは同期辞書レジストリを通じて解決されます。ロケール別に分割されていない同じコンテンツです。

    主な機能:

    • getIntlayer と同じ型付きキー、セレクター、および返されたコンテンツ
    • 最適化されたビルドで要求されたロケールチャンクのみを読み込む
    • 同じチャンクへの並行呼び出しは単一の読み込みを共有
    • async メタデータビルダー、ローダー、サーバー関数での使用が安全

    関数シグネチャ

    typescript
    getIntlayerAsync(
      key: DictionaryKeys,                        // 必須
      localeOrSelector?: LocalesValues | DictionarySelector, // オプション
      plugins?: Plugins[]                         // オプション
    ): Promise<DeepTransformContent<...>>
    

    パラメータ

    • key: DictionaryKeys

      • 説明: コンテンツファイルで宣言されたとおりの辞書キー。
      • 型: DictionaryKeys、すべての宣言された辞書キーの Union。
      • 必須: はい
    • 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
      • 必須: いいえ(任意)。省略した場合は getIntlayer と同じように解決されます(リクエストのロケール、次に保存済みロケール、次に defaultLocale)。非同期関数のため、リクエストのロケールが非同期でしか読めない場合はそれを待つこともできます。Next.js の Server Components、generateMetadata、route handler では、next-intlayer/server の getLocale() と同様に、リクエストの headers() と cookies() を読み取ります。この読み取りはルートを動的レンダリングに切り替えるため、IntlayerProvider がまだロケールを提供していない場合にのみ行われます。
    • plugins: Plugins[]

      • 説明: 基本インタープリタプラグインを置き換えるカスタムノード トランスフォーマー。高度な使用のみ。
      • 型: Plugins[]
      • 必須: No (オプション)

    Returns

    • 型: Promise<Content>、辞書の解釈されたコンテンツに解決する promise。型は宣言から取得されます。

    使用例

    基本的な使用法

    typescript
    import { getIntlayerAsync } from "intlayer";
    
    const { title } = await getIntlayerAsync("app", "fr"); // "Bonjour"
    

    getIntlayer vs getIntlayerAsync

    getIntlayergetIntlayerAsync
    ReturnsコンテンツコンテンツのPromise
    Dictionary loadedマージされたディクショナリ(すべてのロケール)リクエストされたロケールのチャンクのみ
    Best suited forレンダリング、同期コードパスメタデータ、ローダー、サーバー関数
    Requires a plugin?NoNo、per-locale splitはビルドプラグインが必要です

    両方とも同じ引数を受け入れ、同じコンテンツを返します。一方から他方に切り替えることで変わるのは、いつとどの程度のロードが行われるかだけです。

    関連する関数

    TypeScript

    typescript
    function getIntlayerAsync<
      const T extends DictionaryKeys,
      const A extends LocalesValues | DictionarySelector = DeclaredLocales,
    >(
      key: T,
      localeOrSelector?: A,
      plugins?: Plugins[]
    ): Promise<
      DeepTransformContent<
        DictionaryRegistryResult<T, A>,
        IInterpreterPluginState,
        ExtractSelectorLocale<A>
      >
    >;