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 do histórico"v5.5.1029/06/2025
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Documentação: Função t no hono-intlayer
A função t no pacote hono-intlayer é o utilitário principal para fornecer respostas localizadas na sua aplicação Hono. Ela simplifica a internacionalização (i18n) selecionando dinamicamente o conteúdo com base no idioma de preferência do usuário.
Visão Geral
A função t é usada para definir e recuperar traduções para um determinado conjunto de idiomas. Ela determina automaticamente o idioma apropriado a ser retornado com base nas configurações de solicitação do cliente, como o cabeçalho Accept-Language. Se o idioma preferido não estiver disponível, ela recorre graciosamente ao local padrão especificado na sua configuração.
Principais Recursos
- Localização Dinâmica: Seleciona automaticamente a tradução mais apropriada para o cliente.
- Fallback para o Local Padrão: Recorre a um local padrão se o idioma preferido do cliente não estiver disponível, garantindo continuidade na experiência do usuário.
- Leve e Rápido: Projetado para aplicações de alto desempenho, garantindo uma sobrecarga mínima.
- Suporte ao Modo Estrito: Reforça a adesão estrita aos locais declarados para um comportamento confiável.
Assinatura da Função
Copiar o código para a área de transferência
t(translations: Record<string, string>): string;Parâmetros
translations: Um objeto onde as chaves são códigos de localidade (ex:en,fr,pt) e os valores são as strings traduzidas correspondentes.
Retorno
- Uma string representando o conteúdo no idioma de preferência do cliente.
Carregando o Manipulador de Solicitação de Internacionalização
Para garantir que a funcionalidade de internacionalização fornecida pelo hono-intlayer funcione corretamente, você deve carregar o middleware de internacionalização no início da sua aplicação Hono. Isso habilita a função t e garante o tratamento adequado da detecção de localidade e tradução.
Coloque o middleware app.use("*", intlayer()) antes de quaisquer rotas na sua aplicação para garantir que todas as rotas se beneficiem da internacionalização:
Copiar o código para a área de transferência
import { Hono } from "hono";
import { intlayer } from "hono-intlayer";
const app = new Hono();
// Carregar manipulador de solicitação de internacionalização
app.use("*", intlayer());
// Defina suas rotas após carregar o middleware
app.get("/", (c) => {
return c.text(
t({
en: "Hello, World!",
fr: "Bonjour le monde!",
es: "¡Hola, Mundo!",
pt: "Olá, Mundo!",
})
);
});Por que isso é Obrigatório
- Detecção de Localidade: O middleware
intlayerprocessa as solicitações recebidas para detectar a localidade preferida do usuário com base em cabeçalhos, cookies ou outros métodos configurados. - Contexto de Tradução: Configura o contexto necessário para que a função
topere corretamente, garantindo que as traduções sejam retornadas no idioma correto. - Prevenção de Erros: Sem este middleware, o uso da função
tresultará em erros de tempo de execução porque as informações de localidade necessárias não estarão disponíveis.
Exemplos de Uso
Exemplo Básico
Sirva conteúdo localizado em diferentes idiomas:
Copiar o código para a área de transferência
app.get("/", (c) => { return c.text( t({ en: "Welcome!", fr: "Bienvenue!", pt: "Bem-vindo!", }) );});Solicitações do Cliente:
- Um cliente com
Accept-Language: frreceberáBienvenue!. - Um cliente com
Accept-Language: ptreceberáBem-vindo!. - Um cliente com
Accept-Language: dereceberáWelcome!(localidade padrão).
Tratamento de Erros
Forneça mensagens de erro em vários idiomas:
Copiar o código para a área de transferência
app.get("/error", (c) => { return c.text( t({ en: "An unexpected error occurred.", fr: "Une erreur inattendue s'est produite.", pt: "Ocorreu um erro inesperado.", }), 500 );});Usando Variantes de Localidade
Especifique traduções para variantes específicas de localidade:
Copiar o código para a área de transferência
app.get("/greet", (c) => { return c.text( t({ en: "Hello!", "en-GB": "Hello, mate!", fr: "Bonjour!", pt: "Olá!", }) );});Tópicos Avançados
Mecanismo de Fallback
Se uma localidade preferida estiver indisponível, a função t recorrerá à localidade padrão definida na configuração:
Copiar o código para a área de transferência
import { Locales, type IntlayerConfig } from "intlayer";const config = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.PORTUGUESE], defaultLocale: Locales.ENGLISH, },} satisfies IntlayerConfig;export default config;Execução do Modo Estrito
Configure a função t para reforçar a adesão estrita aos locais declarados:
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Modo | Comportamento |
|---|---|
strict | Todos os locais declarados devem ter traduções fornecidas. Locais ausentes lançarão erros. |
inclusive | Locais declarados devem ter traduções. Locais ausentes acionam avisos, mas são aceitos. |
loose | Qualquer local existente é aceito, mesmo que não seja declarado. |
Integração com TypeScript
A função t é type-safe quando usada com TypeScript. Defina um objeto de traduções type-safe:
Copiar o código para a área de transferência
import { type LanguageContent } from "hono-intlayer";const translations: LanguageContent<string> = { en: "Good morning!", fr: "Bonjour!", pt: "Bom dia!",};app.get("/morning", (c) => { return c.text(t(translations));});Erros Comuns e Solução de Problemas
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Problema | Causa | Solução |
|---|---|---|
Função t não funciona | Middleware não carregado | Certifique-se de que app.use("*", intlayer()) seja adicionado antes das rotas. |
| Erro de traduções ausentes | Modo estrito ativado sem todos os locais | Forneça todas as traduções necessárias. |
Conclusão
A função t é uma ferramenta poderosa para a internacionalização de back-end. Ao usá-la de forma eficaz, você pode criar uma aplicação mais inclusiva e amigável para um público global. Para uso avançado e opções de configuração detalhadas, consulte a documentação.