Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Histórico de versões
- "Inicialização da documentação"v9.4.024/08/2026
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsSe você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentaçãoCopiar o Markdown do documento para a área de transferência
Documentação do Plugin intlayer para Elysia
O plugin intlayer para Elysia deteta o locale do utilizador e injeta um objeto intlayer no contexto da rota. Também permite o uso de funções de tradução globais dentro do contexto da request.
Uso
Copiar o código para a área de transferência
Os mesmos helpers estão disponíveis como exports autónomos, para que possa chamá-los sem desestruturar o contexto da rota:
Copiar o código para a área de transferência
Descrição
O plugin realiza as seguintes tarefas:
- Detecção de locale: Lê o locale definido explicitamente pelo cliente a partir do storage (cookie, header) e, em seguida, recorre ao locale negociado a partir do header
Accept-Language. - Injeção no contexto: Adiciona uma propriedade
intlayerao contexto de rota do Elysia, contendo:locale: O locale a usar nesta request, comlocale_storagea ter precedência sobrelocale_detected.locale_storage: O locale explicitamente pedido pelo cliente através de um cookie ou de um header.locale_detected: O locale negociado a partir dos headers da request.defaultLocale: O locale configurado como fallback nointlayer.config.ts.t: Uma função de tradução.getIntlayer: Uma função para obter dicionários pela sua chave.getDictionary: Uma função para processar objetos de dicionário.
- Gerenciamento de contexto: Utiliza
AsyncLocalStoragepara gerir um contexto assíncrono, permitindo que as funções globais do Intlayer (t,getIntlayer,getDictionary) acedam ao locale específico da request sem terem de passar o objeto de contexto.
Ao contrário dos plugins Intlayer baseados em Node,elysia-intlayerapoia-se emAsyncLocalStorageem vez decls-hooked, porquecls-hookeddepende deasync_hooks.createHook, que o Bun não implementa.
O contexto da request é libertado assim que a resposta é mapeada, para que os helpers autónomos nunca sejam resolvidos contra uma request já terminada. Quando chamados fora de uma request tratada pelo plugin, recorrem ao locale por omissão configurado.
Configuração
O plugin lê o seu ficheiro intlayer.config.ts. Pode personalizar o cookie e o header usados para a deteção do locale:
Copiar o código para a área de transferência
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 mais informações sobre a configuração, visite a documentação de configuração.
