Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Инициализация документации"v9.4.024.08.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Документация плагина intlayer для Elysia
Плагин intlayer для Elysia определяет локаль пользователя и внедряет объект intlayer в контекст маршрута. Он также позволяет использовать глобальные функции перевода в контексте запроса.
Использование
Копировать код в буфер обмена
Те же хелперы доступны как отдельные экспорты, поэтому их можно вызывать без деструктуризации контекста маршрута:
Копировать код в буфер обмена
Описание
Плагин выполняет следующие задачи:
- Определение локали: Он считывает локаль, явно заданную клиентом, из storage (cookie, header), а затем возвращается к локали, согласованной по заголовку
Accept-Language. - Внедрение в контекст: Добавляет свойство
intlayerв контекст маршрута Elysia, содержащее:locale: Локаль, используемая для этого запроса;locale_storageимеет приоритет надlocale_detected.locale_storage: Локаль, явно запрошенная клиентом через cookie или header.locale_detected: Локаль, согласованная по заголовкам запроса.defaultLocale: Локаль, настроенная как fallback вintlayer.config.ts.t: Функция перевода.getIntlayer: Функция для получения словарей по ключу.getDictionary: Функция для обработки объектов словарей.
- Управление контекстом: Использует
AsyncLocalStorageдля управления асинхронным контекстом, позволяя глобальным функциям Intlayer (t,getIntlayer,getDictionary) получать доступ к локали, специфичной для запроса, без передачи объекта контекста.
В отличие от плагинов Intlayer, основанных на Node,elysia-intlayerопирается наAsyncLocalStorageвместоcls-hooked, потому чтоcls-hookedзависит отasync_hooks.createHook, который Bun не реализует.
Контекст запроса освобождается сразу после маппинга ответа, поэтому отдельные хелперы никогда не разрешаются относительно уже завершённого запроса. При вызове вне запроса, обрабатываемого плагином, они возвращаются к настроенной локали по умолчанию.
Конфигурация
Плагин читает ваш файл intlayer.config.ts. Вы можете настроить cookie и header, используемые для определения локали:
Копировать код в буфер обмена
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH],
defaultLocale: Locales.ENGLISH,
},
routing: {
storage: [
{ type: "header", name: "my-locale-header" },
{ type: "cookie", name: "my-locale-cookie" },
],
},
};
export default config;
Дополнительную информацию о конфигурации смотрите в документации по конфигурации.
