Penulis:
    Dibuat:2026-08-23Terakhir diperbarui:2026-08-23

    Dokumentasi: Fungsi getIntlayerAsync di intlayer

    Deskripsi

    Fungsi getIntlayerAsync memilih satu kamus berdasarkan kuncinya dan menyelesaikan kontennya untuk locale yang diberikan, memuat locale tersebut saja.

    Ini adalah mitra asinkron dari getIntlayer, dimaksudkan untuk tempat-tempat di mana kamus dibaca di luar rendering — route head / pembangun metadata, loaders, server functions.

    Di mana getIntlayer menarik kamus gabungan yang menampung setiap locale, plugin build (@intlayer/babel, @intlayer/swc) menulis ulang panggilan ini menjadi getDictionaryAsync(loaderMap, key, locale), mengarahkannya ke chunk per-locale di .intlayer/dynamic_dictionaries/. Bundle oleh karena itu hanya pernah membawa locale yang benar-benar diminta.

    Tanpa plugin tersebut — build yang tidak dioptimalkan — panggilan diselesaikan melalui registry kamus sinkron sebagai gantinya: konten yang sama, tanpa pemisahan per-locale.

    Fitur Utama:

    • Kunci, selektor dan konten yang dikembalikan sama dengan getIntlayer
    • Memuat hanya chunk locale yang diminta dalam build yang dioptimalkan
    • Panggilan bersamaan untuk chunk yang sama berbagi satu load
    • Aman digunakan dalam pembangun metadata async, loaders dan server functions

    Function Signature

    typescript
    getIntlayerAsync(
      key: DictionaryKeys,                        // Diperlukan
      localeOrSelector?: LocalesValues | DictionarySelector, // Opsional
      plugins?: Plugins[]                         // Opsional
    ): Promise<DeepTransformContent<...>>
    

    Parameters

    • key: DictionaryKeys

      • Description: Kunci kamus yang akan dibaca, seperti yang dideklarasikan dalam file konten Anda.
      • Type: DictionaryKeys — union dari setiap kunci kamus yang dideklarasikan.
      • Required: Yes
    • localeOrSelector: LocalesValues | DictionarySelector

      • Description: Locale untuk menginterpretasi konten, atau objek selector untuk kamus dinamis.
        • 'fr' — sebuah locale
        • { item: 2 } — item collection (abaikan item untuk mendapatkan setiap item sebagai array)
        • { variant: 'black-friday' }variant bernama (abaikan untuk yang default)
        • { variant: { id: 'prod_abc', userId: '123' } } — variant terstruktur
        • Setiap selector dapat membawa locale: { item: 2, locale: 'fr' }
      • Type: LocalesValues | DictionarySelector
      • Required: No (Optional) — defaults ke defaultLocale yang dikonfigurasi.
    • plugins: Plugins[]

      • Description: Custom node transformers yang menggantikan base interpreter plugins. Penggunaan advanced only.
      • Type: Plugins[]
      • Required: No (Optional)

    Returns

    • Type: Promise<Content> — a promise yang resolve ke konten yang diinterpretasi dari dictionary, yang diketik dari declaration Anda.

    Contoh Penggunaan

    Penggunaan Dasar

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

    getIntlayer vs getIntlayerAsync

    getIntlayer getIntlayerAsync
    Returns Konten Janji dari konten
    Dictionary loaded Dictionary yang digabungkan (semua locale) Chunk dari locale yang diminta saja
    Best suited for Rendering, jalur kode sinkron Metadata, loaders, fungsi server
    Requires a plugin? Tidak Tidak — split per-locale memerlukan build plugins

    Keduanya menerima argumen yang sama dan mengembalikan konten yang sama: beralih dari satu ke yang lain hanya mengubah kapan dan berapa banyak yang dimuat.


    Fungsi Terkait

    • getIntlayer: Ekuivalen sinkron yang membaca dictionary yang sudah digabung.
    • getDictionaryAsync: Fungsi tingkat rendah yang plugin build tulis ulang menjadi panggilan ini.
    • getLocale: Mendeteksi locale dari request yang masuk.

    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>
      >
    >;