Автор:
    Создание:2026-08-23Последнее обновление:2026-08-23

    Документация: функция getIntlayerAsync в intlayer

    Описание

    Функция 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 — объединение всех объявленных ключей словаря.
      • Обязательно: Yes
    • localeOrSelector: LocalesValues | DictionarySelector

      • Описание: Локаль для интерпретации контента или объект селектора для динамических словарей.
        • 'fr' — локаль
        • { item: 2 } — элемент коллекции (опустите item, чтобы получить все элементы в виде массива)
        • { variant: 'black-friday' } — именованный вариант (опустите для получения default)
        • { variant: { id: 'prod_abc', userId: '123' } } — структурированный вариант
        • Любой селектор может содержать локаль: { item: 2, locale: 'fr' }
      • Тип: LocalesValues | DictionarySelector
      • Обязательно: No (Optional) — по умолчанию используется настроенный defaultLocale.
    • plugins: Plugins[]

      • Описание: Пользовательские трансформаторы узлов, заменяющие базовые плагины интерпретатора. Только для продвинутого использования.
      • Тип: Plugins[]
      • Обязательно: No (Optional)

    Возвращаемое значение

    • Type: Promise<Content> — обещание, разрешаемое в интерпретированное содержимое словаря, типизированное из вашего объявления.

    Пример использования

    Основное использование

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

    getIntlayer vs getIntlayerAsync

    getIntlayer getIntlayerAsync
    Returns Контент Обещание (promise) контента
    Dictionary loaded Объединённый словарь (все локали) Только фрагмент запрошенной локали
    Best suited for Рендеринг, синхронные пути кода Метаданные, загрузчики, серверные функции
    Requires a plugin? Нет Нет — разделение по локалям требует плагины сборки

    Обе функции принимают одинаковые аргументы и возвращают одинаковый контент: переключение между ними изменяет только когда и сколько загружается.


    Связанные функции

    • getIntlayer: Синхронный эквивалент, читающий объединённый словарь.
    • getDictionaryAsync: Функция нижнего уровня, в которую переписывают вызовы плагины сборки.
    • getLocale: Определяет локаль входящего запроса.

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