Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Inicialización de la documentación"v9.4.024/8/2026
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésSi tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.
Enlace de GitHub a la documentaciónCopiar el Markdown del documento a la portapapeles
Documentación del Plugin intlayer para Elysia
El plugin intlayer para Elysia detecta el locale del usuario e inyecta un objeto intlayer en el contexto de la ruta. También permite el uso de funciones globales de traducción dentro del contexto de la request.
Uso
Copiar el código al portapapeles
Los mismos helpers están disponibles como exports independientes, por lo que puedes llamarlos sin desestructurar el contexto de la ruta:
Copiar el código al portapapeles
Descripción
El plugin realiza las siguientes tareas:
- Detección de locale: Lee el locale establecido explícitamente por el cliente desde el storage (cookie, header), y luego recurre al locale negociado a partir del header
Accept-Language. - Inyección en el contexto: Añade una propiedad
intlayeral contexto de ruta de Elysia, que contiene:locale: El locale a usar para esta request;locale_storagetiene prioridad sobrelocale_detected.locale_storage: El locale solicitado explícitamente por el cliente mediante una cookie o un header.locale_detected: El locale negociado a partir de los headers de la request.defaultLocale: El locale configurado como fallback enintlayer.config.ts.t: Una función de traducción.getIntlayer: Una función para recuperar diccionarios por clave.getDictionary: Una función para procesar objetos de diccionario.
- Gestión del contexto: Usa
AsyncLocalStoragepara gestionar un contexto asíncrono, permitiendo que las funciones globales de Intlayer (t,getIntlayer,getDictionary) accedan al locale específico de la request sin tener que pasar el objeto de contexto.
A diferencia de los plugins de Intlayer basados en Node,elysia-intlayerse apoya enAsyncLocalStorageen lugar decls-hooked, porquecls-hookeddepende deasync_hooks.createHook, que Bun no implementa.
El contexto de la request se libera una vez que la respuesta se ha mapeado, de modo que los helpers independientes nunca se resuelven contra una request ya finalizada. Cuando se llaman fuera de una request gestionada por el plugin, recurren al locale por defecto configurado.
Configuración
El plugin lee tu archivo intlayer.config.ts. Puedes personalizar la cookie y el header usados para la detección del locale:
Copiar el código al portapapeles
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;
Para más información sobre la configuración, visita la documentación de configuración.
