Autor:
    Criação:2026-08-23Última atualização:2026-08-23

    Documentação: Função getIntlayerAsync em intlayer

    Descrição

    A função getIntlayerAsync seleciona um dicionário pela sua chave e resolve seu conteúdo para uma localidade específica, carregando apenas essa localidade.

    É o equivalente assíncrono de getIntlayer, destinado aos locais onde um dicionário é lido fora da renderização — construtores de rota head / metadados, loaders, funções de servidor.

    Enquanto getIntlayer carrega o dicionário mesclado contendo cada localidade, os plugins de build (@intlayer/babel, @intlayer/swc) reescrevem esta chamada em getDictionaryAsync(loaderMap, key, locale), apontando para os chunks por localidade em .intlayer/dynamic_dictionaries/. O bundle portanto nunca carrega mais do que a localidade realmente solicitada.

    Sem esses plugins — uma build não otimizada — a chamada é resolvida através do registro de dicionário síncrono: o mesmo conteúdo, sem a divisão por localidade.

    Principais Funcionalidades:

    • As mesmas chaves digitadas, seletores e conteúdo retornado que getIntlayer
    • Carrega apenas o chunk da localidade solicitada em builds otimizadas
    • Chamadas simultâneas para o mesmo chunk compartilham um único carregamento
    • Seguro de usar em construtores de metadados async, loaders e funções de servidor

    Function Signature

    typescript
    getIntlayerAsync(
      key: DictionaryKeys,                        // Obrigatório
      localeOrSelector?: LocalesValues | DictionarySelector, // Opcional
      plugins?: Plugins[]                         // Opcional
    ): Promise<DeepTransformContent<...>>
    

    Parâmetros

    • key: DictionaryKeys

      • Description: A chave do dicionário a ser lida, conforme declarado em seus arquivos de conteúdo.
      • Type: DictionaryKeys — uma união de todas as chaves de dicionário declaradas.
      • Required: Yes
    • localeOrSelector: LocalesValues | DictionarySelector

      • Description: A localidade para interpretar o conteúdo, ou um objeto seletor para dicionários dinâmicos.
        • 'fr' — uma localidade
        • { item: 2 } — um item de coleção (omita item para obter todos os itens como um array)
        • { variant: 'black-friday' } — uma variante nomeada (omita para a default)
        • { variant: { id: 'prod_abc', userId: '123' } } — uma variante estruturada
        • Qualquer seletor pode carregar uma localidade: { item: 2, locale: 'fr' }
      • Type: LocalesValues | DictionarySelector
      • Required: No (Optional) — defaults to the configured defaultLocale.
    • plugins: Plugins[]

      • Description: Transformadores de nó customizados que substituem os plugins do interpretador base. Apenas para uso avançado.
      • Type: Plugins[]
      • Required: No (Optional)

    Retorna

    • Type: Promise<Content> — uma promessa que resolve para o conteúdo interpretado do dicionário, tipado a partir da sua declaração.

    Exemplo de Uso

    Uso Básico

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

    getIntlayer vs getIntlayerAsync

    getIntlayergetIntlayerAsync
    ReturnsO conteúdoUma promise do conteúdo
    Dictionary loadedO dicionário mesclado (todos os locales)O chunk do locale solicitado apenas
    Best suited forRenderização, caminhos de código síncronosMetadata, loaders, funções de servidor
    Requires a plugin?NãoNão — a divisão por locale necessita dos plugins de build

    Both accept the same arguments and return the same content: switching from one to the other only changes when and how much is loaded.

    Funções Relacionadas

    • getIntlayer: Equivalente síncrono que lê o dicionário mesclado.
    • getDictionaryAsync: A função de nível inferior que os plugins de build reescrevem esta chamada em.
    • getLocale: Detecta o locale de uma requisição de entrada.

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