Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Inizializzazione della documentazione"v9.4.024/08/2026
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
Documentazione del plugin intlayer per Elysia
Il plugin intlayer per Elysia rileva la locale dell'utente e inietta un oggetto intlayer nel contesto della route. Consente inoltre l'uso di funzioni di traduzione globali all'interno del contesto della richiesta.
Utilizzo
Copiare il codice nella clipboard
Gli stessi helper sono disponibili come export autonomi, così puoi richiamarli senza destrutturare il contesto della route:
Copiare il codice nella clipboard
Descrizione
Il plugin esegue le seguenti operazioni:
- Rilevamento della locale: Legge la locale impostata esplicitamente dal client dallo storage (cookie, header), quindi ricade sulla locale negoziata a partire dall'header
Accept-Language. - Iniezione nel contesto: Aggiunge una proprietà
intlayeral contesto della route di Elysia, contenente:locale: La locale da usare per questa richiesta, conlocale_storageche ha la precedenza sulocale_detected.locale_storage: La locale richiesta esplicitamente dal client tramite un cookie o un header.locale_detected: La locale negoziata a partire dagli header della richiesta.defaultLocale: La locale configurata come fallback inintlayer.config.ts.t: Una funzione di traduzione.getIntlayer: Una funzione per recuperare i dizionari tramite chiave.getDictionary: Una funzione per elaborare gli oggetti dizionario.
- Gestione del contesto: Utilizza
AsyncLocalStorageper gestire un contesto asincrono, consentendo alle funzioni globali di Intlayer (t,getIntlayer,getDictionary) di accedere alla locale specifica della richiesta senza dover passare l'oggetto di contesto.
A differenza dei plugin Intlayer basati su Node,elysia-intlayersi affida adAsyncLocalStorageanziché acls-hooked, poichécls-hookeddipende daasync_hooks.createHook, che Bun non implementa.
Il contesto della richiesta viene rilasciato una volta mappata la risposta, così gli helper autonomi non si risolvono mai su una richiesta già terminata. Quando vengono chiamati al di fuori di una richiesta gestita dal plugin, ricadono sulla locale predefinita configurata.
Configurazione
Il plugin legge il tuo file intlayer.config.ts. Puoi personalizzare il cookie e l'header utilizzati per il rilevamento della locale:
Copiare il codice nella clipboard
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;
Per maggiori informazioni sulla configurazione, consulta la documentazione di configurazione.
