Autor:
    Data utworzenia:2026-08-23Ostatnia aktualizacja:2026-08-23

    Dokumentacja: Funkcja getIntlayerAsync w intlayer

    Opis

    Funkcja getIntlayerAsync wybiera jeden słownik po jego kluczu i rozwiązuje jego zawartość dla danego locale'a, ładując tylko ten locale.

    Jest to asynchroniczny odpowiednik getIntlayer, przeznaczony dla miejsc, gdzie słownik jest odczytywany poza renderowaniem — konstruktory head / metadanych tras, loadery, funkcje serwerowe.

    Podczas gdy getIntlayer ładuje scalony słownik zawierający każdy locale, wtyczki budowania (@intlayer/babel, @intlayer/swc) przepisują to wywołanie na getDictionaryAsync(loaderMap, key, locale), wskazując na fragmenty poszczególnych locale'ów w .intlayer/dynamic_dictionaries/. Bundle w związku z tym zawiera tylko rzeczywiście żądany locale.

    Bez tych wtyczek — niezoptymalizowana kompilacja — wywołanie rozwiązuje się zamiast tego poprzez synchroniczny rejestr słownika: ta sama zawartość, bez podziału na locale'a.

    Kluczowe funkcje:

    • Takie same wpisane klucze, selektory i zwracana zawartość co getIntlayer
    • Ładuje tylko żądany fragment locale'a w zoptymalizowanych kompilacjach
    • Współbieżne wywołania dla tego samego fragmentu współdzielą jedno ładowanie
    • Bezpieczne do użycia w asynchronicznych konstruktorach metadanych, loaderach i funkcjach serwerowych

    Sygnatura Funkcji

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

    Parametry

    • key: DictionaryKeys

      • Description: Klucz słownika do odczytania, zadeklarowany w plikach zawartości.
      • Type: DictionaryKeys — unija wszystkich zadeklarowanych kluczy słownika.
      • Required: Yes
    • localeOrSelector: LocalesValues | DictionarySelector

      • Description: Locale do interpretacji zawartości lub obiekt selektora dla słowników dynamicznych.
        • 'fr' — locale
        • { item: 2 } — element kolekcji (pomiń item, aby otrzymać wszystkie elementy jako tablicę)
        • { variant: 'black-friday' } — nazwana wariant (pomiń dla wariantu default)
        • { variant: { id: 'prod_abc', userId: '123' } } — wariant strukturyzowany
        • Każdy selektor może zawierać locale: { item: 2, locale: 'fr' }
      • Type: LocalesValues | DictionarySelector
      • Required: No (Optional) — domyślnie skonfigurowany defaultLocale.
    • plugins: Plugins[]

      • Description: Niestandardowe transformatory węzłów zastępujące podstawowe pluginy interpretera. Zaawansowane użycie tylko.
      • Type: Plugins[]
      • Required: No (Optional)

    Zwracane

    • Typ: Promise<Content> — promise rozwiązujący się do interpretowanej zawartości słownika, typizowanej z Twojej deklaracji.

    Przykład użycia

    Podstawowe użycie

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

    getIntlayer vs getIntlayerAsync

    getIntlayergetIntlayerAsync
    ZwracaZawartośćObietnicę zawartości
    Słownik załadowanyPołączony słownik (wszystkie języki)Chunk tylko żądanego języka
    Najlepiej nadaje się doRenderowanie, synchroniczne ścieżki koduMetadane, loadery, funkcje serwerowe
    Wymaga pluginu?NieNie — podział na języki wymaga pluginów budowania

    Obie funkcje akceptują te same argumenty i zwracają tę samą zawartość: przełączenie się między nimi zmienia tylko kiedy i ile jest ładowane.

    Powiązane funkcje

    • getIntlayer: Synchroniczny odpowiednik odczytujący scalony słownik.
    • getDictionaryAsync: Funkcja niskiego poziomu, którą wtyczki kompilacji przepisują do tego wywołania.
    • getLocale: Wykrywa locale przychodzącego żądania.

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