Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Initialisation de la documentation"v9.4.024/08/2026
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentationCopier le Markdown du doc dans le presse-papiers
Documentation du plugin intlayer pour Elysia
Le plugin intlayer pour Elysia détecte la locale de l'utilisateur et injecte un objet intlayer dans le contexte de route. Il permet également l'utilisation des fonctions globales de traduction dans le contexte de la requête.
Utilisation
Copier le code dans le presse-papiers
Les mêmes helpers sont disponibles en tant qu'exports autonomes, afin de pouvoir les appeler sans déstructurer le contexte de route :
Copier le code dans le presse-papiers
Description
Le plugin effectue les opérations suivantes :
- Détection de la locale : Il lit la locale explicitement définie par le client depuis le storage (cookie, header), puis se rabat sur la locale négociée à partir du header
Accept-Language. - Injection dans le contexte : Il ajoute une propriété
intlayerau contexte de route Elysia, contenant :locale: La locale à utiliser pour cette requête,locale_storageétant prioritaire surlocale_detected.locale_storage: La locale explicitement demandée par le client via un cookie ou un header.locale_detected: La locale négociée à partir des headers de la requête.defaultLocale: La locale configurée comme fallback dansintlayer.config.ts.t: Une fonction de traduction.getIntlayer: Une fonction pour récupérer les dictionnaires par clé.getDictionary: Une fonction pour traiter les objets dictionnaire.
- Gestion du contexte : Il utilise
AsyncLocalStoragepour gérer un contexte asynchrone, permettant aux fonctions globales d'Intlayer (t,getIntlayer,getDictionary) d'accéder à la locale spécifique à la requête sans avoir à transmettre l'objet de contexte.
Contrairement aux plugins Intlayer basés sur Node,elysia-intlayers'appuie surAsyncLocalStorageplutôt que surcls-hooked, carcls-hookeddépend deasync_hooks.createHook, que Bun n'implémente pas.
Le contexte de requête est libéré une fois la réponse mappée, afin que les helpers autonomes ne se résolvent jamais sur une requête déjà terminée. Lorsqu'ils sont appelés en dehors d'une requête gérée par le plugin, ils se rabattent sur la locale par défaut configurée.
Configuration
Le plugin lit votre fichier intlayer.config.ts. Vous pouvez personnaliser le cookie et le header utilisés pour la détection de la locale :
Copier le code dans le presse-papiers
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;
Pour plus d'informations sur la configuration, consultez la documentation de configuration.
