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

    getIntlayer getIntlayerAsync
    Zwraca Zawartość Obietnicę zawartości
    Słownik załadowany Połączony słownik (wszystkie języki) Chunk tylko żądanego języka
    Najlepiej nadaje się do Renderowanie, synchroniczne ścieżki kodu Metadane, loadery, funkcje serwerowe
    Wymaga pluginu? Nie Nie — 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>
      >
    >;