Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Без локали используется локаль запроса или сохранённая локаль, прежде чем локаль по умолчанию"v9.5.1228.09.2026
- "Первоначальная документация"v9.4.023.08.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Документация: функция getIntlayer в intlayer
Описание
Функция getIntlayer выбирает один словарь по его ключу и возвращает его содержимое, интерпретированное для заданной локали. Это независимый от фреймворка эквивалент хука useIntlayer: то же содержимое, те же селекторы, но пригодный для использования везде, где React контекст недоступен, скрипты Node, серверные функции, загрузчики маршрутов, построители метаданных, обработчики Express/Fastify, тесты.
Функция читает словари, созданные Intlayer в .intlayer/, поэтому аргумент key типизирован и автодополняется на основе ваших объявлений содержимого, а возвращаемый объект полностью типизирован вплоть до каждого листового узла.
Основные возможности:
- Типизированные ключи словарей и типизированное возвращаемое содержимое
- Интерпретирует каждый узел содержимого (
t(),enu(),cond(),insert(),nest(),md(),html(),file(),gender()) - Принимает локаль или объект селектора (коллекции, варианты)
- Результаты кэшируются для каждой комбинации
key + locale + selector - В режиме разработки откатывается на безопасный прокси при отсутствии словаря вместо краша
Сигнатура функции
Копировать код в буфер обмена
Параметры
key: DictionaryKeys- Описание: Ключ словаря для чтения, объявленный в ваших файлах контента.
- Тип:
DictionaryKeys, объединение всех объявленных ключей словаря. - Обязательно: Да
localeOrSelector: LocalesValues | DictionarySelector- Описание: Локаль для интерпретации контента или объект селектора для динамических словарей.
'fr': локаль{ item: 2 }: элемент коллекции (опуститеitemчтобы получить все элементы как массив){ variant: 'black-friday' }: именованный вариант (опустите дляdefaultварианта){ variant: { id: 'prod_abc', userId: '123' } }: структурированный вариант- Любой селектор может содержать локаль:
{ item: 2, locale: 'fr' }
- Тип:
LocalesValues | DictionarySelector - Обязательно: Нет (необязательно). Если не указана, см. Без локали.
- Описание: Локаль для интерпретации контента или объект селектора для динамических словарей.
plugins: Plugins[]- Описание: Пользовательские трансформеры узлов, заменяющие базовые плагины интерпретатора. Только для продвинутого использования; опустите для сохранения поведения по умолчанию.
- Тип:
Plugins[] - Обязательно: Нет (необязательно)
Возвращаемое значение
- Тип: Интерпретированное содержимое словаря, типизированное из вашего объявления.
- Описание: Простой объект, отражающий поле
contentвашего словаря, где каждый узел Intlayer разрешен на его финальное значение для запрошенной локали.
Пример использования
Базовое использование
Копировать код в буфер обмена
Копировать код в буфер обмена
import { getIntlayer } from "intlayer";
const { title } = getIntlayer("app", "fr"); // "Bonjour"
Без локали
Если локаль не передана, getIntlayer не переходит сразу к локали по умолчанию. Она определяет локаль в следующем порядке:
- Локаль текущего запроса, на сервере, когда его обрабатывает интеграция Intlayer: middleware
express-intlayer,fastify-intlayer,hono-intlayer,adonis-intlayerиelysia-intlayer, middlewareremix-intlayerиastro-intlayer, а такжеIntlayerProvider/setLocaleв React Server Components. Каждый запрос определяется по его собственным cookies и заголовкам, поэтому одновременные пользователи никогда не делят одну локаль. - Локаль, сохранённая в браузере (cookie,
localStorage,sessionStorage), которую сохраняет переключатель языка. defaultLocale, объявленная в вашей конфигурации.
Копировать код в буфер обмена
То же определение применяется к getDictionary, к вызовам, которые переписывают плагины сборки, и к useIntlayer / useDictionaryDynamic, отрендеренным вне провайдера. Явно переданная локаль всегда имеет приоритет.
getIntlayer не реактивна: после смены локали вызовите её снова, чтобы прочитать новую локаль. На странице с серверным рендерингом вызов вне любого провайдера рендерит локаль по умолчанию на сервере и сохранённую локаль в браузере, что может вызвать hydration mismatch. В этом случае подключите провайдер вашего фреймворка или передайте локаль.
Внутри обработчика сервера
Копировать код в буфер обмена
С селектором (коллекции и варианты)
Копировать код в буфер обмена
Примечания о поведении
Кеширование
Результаты кешируются на уровне модуля с ключом key + locale + selector. Повторные вызовы getIntlayer("app", "fr") интерпретируют словарь один раз и впоследствии возвращают тот же объект.
Отсутствующие словари
В процессе разработки запрос ключа, для которого не был сгенерирован словарь, регистрирует предупреждение один раз и возвращает безопасный резервный прокси: чтение content.title возвращает строку "app.title" вместо выброса ошибки. Это позволяет странице оставаться функциональной во время исправления недостающей декларации. Запустите сборку Intlayer (или сервер разработки), чтобы словарь был сгенерирован.
Размер бандла
getIntlayer читает объединённый словарь, который содержит все локали. В клиентских бандлах плагины сборки переписывают вызов так, чтобы отправлялось только необходимое содержимое. Когда вы читаете содержимое вне рендеринга (метаданные, загрузчики, серверные функции) и хотите загрузить одну локаль по требованию, используйте getIntlayerAsync.
Связанные функции
TypeScript
Копировать код в буфер обмена
