Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Ініціалізація документації"v9.4.024.08.2026
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на 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;
Докладніше про конфігурацію дивіться в документації з конфігурації.
