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). - 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. |
Quando os helpers autónomos são 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.
