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
O plugin registra seu contexto por meio de umderiveglobal, que o Elysia tipa comoPartial<{ intlayer: IntlayerContext }>. Em tempo de execução o valor está sempre presente para as rotas registradas após.use(intlayer()), portanto use a non-null assertion (intlayer!.t) — ou optional chaining — para satisfazer o TypeScript no modostrict.
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 (veja a tabela Contexto da rota abaixo). - 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. - Preparação dos dicionários: Chama
prepareIntlayerquando o plugin é criado, de modo que os dicionários são construídos na inicialização da aplicação.
Contexto da rota
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Propriedade | Tipo | Descrição |
|---|---|---|
locale | Locale | O locale a usar nesta request, com locale_storage a ter precedência sobre locale_detected. |
locale_storage | Locale (opcional) | O locale explicitamente pedido pelo cliente através de um cookie ou de um header. |
locale_detected | Locale | O locale negociado a partir dos headers da request. |
defaultLocale | Locale | O locale configurado como fallback no intlayer.config.ts. |
t | TranslateFunction | Uma função de tradução. |
getIntlayer | typeof getIntlayer | Uma função para obter dicionários pela sua chave. |
getDictionary | typeof getDictionary | Uma função para processar objetos de dicionário. |
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.
Ordem de resolução da locale
Por padrão, o plugin resolve a locale nesta ordem:
- O cookie
INTLAYER_LOCALE. - O header
x-intlayer-locale. - A negociação do header
Accept-Language. - A
defaultLocaleconfigurada.
Copiar o código para a área de transferência
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, Locales.SPANISH],
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.
