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

    Документация хука useIntlayer

    Хук useIntlayer позволяет получать локализованный контент из словаря Intlayer по ключу в приложениях Remix 3.

    Он автоматически считывает активную локаль из контекста текущего запроса (через AsyncLocalStorage), поэтому вам не требуется передавать локаль через обработчики маршрутов, шаблоны представлений или компоненты.

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

    В обработчиках маршрутов

    src/server.ts
    import { createRouter } from "remix/router";
    import { intlayer, useIntlayer } from "remix-intlayer";
    
    const router = createRouter({
      middleware: [intlayer()],
    });
    
    router.get("/api/welcome", () => {
      const content = useIntlayer("home");
    
      return Response.json({
        title: content.title,
        subtitle: content.subtitle,
      });
    });
    

    В шаблонах представлений и компонентах

    src/views/home.ts
    import { useIntlayer } from "remix-intlayer";
    
    export const HomeView = () => {
      const content = useIntlayer("home");
    
      return `
        <main>
          <h1>${content.title}</h1>
          <p>${content.subtitle}</p>
        </main>
      `;
    };
    

    Параметры

    ts
    useIntlayer(key, localeOrSelector?)
    
    1. key: Уникальный ключ словаря (определенный в ваших файлах .content.ts).
    2. localeOrSelector (необязательно): Конкретная локаль или объект селектора ({ item }, { variant }, при необходимости с locale). Если указан, переопределяет локаль, определенную из контекста запроса.

    Описание

    Хук выполняет следующие задачи:

    1. Получение локали из контекста: Определяет текущую локаль из области AsyncLocalStorage, привязанной к запросу промежуточным ПО intlayer().
    2. Получение словаря: Извлекает предварительно скомпилированный словарь, соответствующий переданному ключу.
    3. Обработка переводов: Обрабатывает переводы, перечисления, markdown и условный контент для полученной локали.
    4. Резервная обработка (Fallback): При вызове вне контекста активного HTTP-запроса (например, в фоновых задачах или модульных тестах без промежуточного ПО) безопасно возвращается к настроенной defaultLocale.

    Связанная документация