Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
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
Traduza seu site Next.js 15 usando next-intl com Intlayer | Internacionalização (i18n)
Este guia apresenta as melhores práticas do next-intl em um app Next.js 15 (App Router) e mostra como adicionar o Intlayer para um gerenciamento robusto de traduções e automação.
Veja a comparação em next-i18next vs next-intl vs Intlayer.
- Para iniciantes: siga as seções passo a passo para obter um app multilíngue funcional.
- Para desenvolvedores intermediários: preste atenção na otimização do payload e na separação servidor/cliente.
- Para seniores: observe a geração estática, middleware, integração SEO e hooks de automação.
O que vamos cobrir:
- Configuração e estrutura de arquivos
- Otimização do carregamento das mensagens
- Uso de componentes cliente e servidor
- Metadados, sitemap, robots para SEO
- Middleware para roteamento de locale
- Adicionando Intlayer por cima (CLI e automação)
Configure sua aplicação usando next-intl
Instale as dependências do next-intl -
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Configuração e Carregamento de Conteúdo
Carregue apenas os namespaces que suas rotas precisam e valide os locales cedo. Mantenha os componentes do servidor síncronos quando possível e envie para o cliente apenas as mensagens necessárias.
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Uso em um componente cliente
Vamos pegar um exemplo de um componente cliente que renderiza um contador.
Traduções (formato reutilizado; carregue-as nas mensagens do next-intl como preferir)
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Componente cliente
Copiar o código para a área de transferência
Não esqueça de adicionar a mensagem "about" nas mensagens do cliente da página (inclua apenas os namespaces que seu cliente realmente precisa).
Uso em um componente server
Este componente de UI é um componente server e pode ser renderizado dentro de um componente client (página → client → server). Mantenha-o síncrono passando strings pré-calculadas.
Copiar o código para a área de transferência
Notas:
- Calcule
formattedCountno lado do servidor (ex:const initialFormattedCount = format.number(0)). - Evite passar funções ou objetos não serializáveis para componentes server.
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Middleware para roteamento de locale
Adicione um middleware para lidar com a detecção e roteamento de locale:
Copiar o código para a área de transferência
Melhores práticas
- Defina
langedirno html: Emsrc/app/[locale]/layout.tsx, calculedirviagetLocaleDirection(locale)e defina<html lang={locale} dir={dir}>. - Separe mensagens por namespace: Organize JSON por locale e namespace (ex:
common.json,about.json). - Minimize o payload do cliente: Nas páginas, envie apenas os namespaces necessários para o
NextIntlClientProvider(por exemplo,pick(messages, ['common', 'about'])). - Prefira páginas estáticas: Exporte
export const dynamic = 'force-static'e gere parâmetros estáticos para todos oslocales. - Componentes de servidor síncronos: Passe strings pré-computadas (rótulos traduzidos, números formatados) em vez de chamadas assíncronas ou funções não serializáveis.
Implemente o Intlayer sobre o next-intl
Instale as dependências do intlayer:
Copiar o código para a área de transferência
Crie o arquivo de configuração do intlayer:
Copiar o código para a área de transferência
Adicione scripts no package.json:
Copiar o código para a área de transferência
Notas:
intlayer fill: usa seu provedor de IA para preencher traduções ausentes com base nos seus locais configurados.intlayer test: verifica traduções ausentes/inválidas (use no CI).
Você pode configurar argumentos e provedores; veja Intlayer CLI.