Pular para o conteúdo
React

Como internacionalizar projetos React com i18next

Nunca foi tão simples tornar seu site ou aplicativo realmente global com React, Next.js e a força do i18next. transformar qualquer projeto, escalar seu SaaS e atrair oportunidades

Por que isso é importante

Demo de stack viral: inspire-se nos trade-offs — copiar repo da moda sem ops é fanfic.

Tradução nunca mais será um obstáculo

Durante muito tempo, traduzir aplicações era um pandemônio: ifs em todo lugar, deploys
sempre que um texto mudava, soluções "caseiras" que não escalavam. Hoje existe i18next:
moderno, direto e aceito pelos maiores times do mundo. Vamos ver como sair desse caos.

Atenção

Manter traduções no código sem uma ferramenta de i18n deixa seu projeto ultra difícil
de escalar. É recursivo: cada ajuste de texto exige outro deploy, outra correria e
novos bugs.

Onde isso impacta na vida real?

Seja seu SaaS atendendo outro país, uma vaga internacional exigindo portfólio em inglês,
ou até uma startup implementando idiomas regionais – uma boa estrutura de i18n é
pré-requisito profissional. Não importa se é startup ou multinacional: só escala quem
pensa global.

Por trás do nome estranho: de onde vem i18n?

"I18N" significa Internationalization – nada mais do que “i” + 18 letras no meio + “n”.
Preguiça dos devs, claro, mas o conceito é sério: tornar qualquer sistema pronto para
aceitar múltiplos idiomas e culturas sem sofrimento.

Dica técnica

Memorize: toda vez que ouvir “i18n” ou “l10n” (localization), estão falando sobre como
tornar sistemas verdadeiramente globais.

O problema antigo de traduções: o que mudou com i18next

Antes de 2011, toda tradução era feita “na raça” no front ou back. Múltiplos ifs,
selects de bandeirinhas, duplicação de layouts e caos total. Só depois surgiu i18next,
uma biblioteca que mudou o jogo para React, Next.js e todos ecossistemas modernos.

Alerta histórico

Projetos legados normalmente possuem estruturas de tradução retrógradas. Cuidado ao
migrar: não tente adaptar if-else antigos para o i18next. Refaça o básico, vai valer a
pena.

Por que i18next virou padrão?

Open source, vasto suporte, integração nativa no React e Next.js e um ecossistema
estável — o i18next existe desde 2011, teve suporte oficial desde backend Node.js até
hooks dedicados para React, e é adotado por milhares de empresas de todos os tamanhos.

Agora ficou fácil internacionalizar

Você pode traduzir todo o seu projeto sem reinventar a roda e, principalmente, sem
travar o deploy. Separando as traduções em arquivos, mudando idiomas sem recarregar a
aplicação, e com suporte a novos idiomas a cada commit.

Atenção

Sempre que mexer nos textos da aplicação, lembre-se: um sistema desacoplado dos textos
dos componentes é o único caminho sustentável para múltiplos idiomas.

Como funciona na prática? Veja o fluxo campeão

Primeiro você instala as dependências certas no seu projeto React ou Next.js. Depois
configura um arquivo i18n de bootstrap. Cria arquivos JSON com os textos, separa por
idioma, e usa hooks como useTranslation de React-i18next para chamar cada texto no
código, sem dor.

Instalando as dependências essenciais

Rapidez: use Yarn ou NPM para instalar tudo de uma vez

Você vai precisar de i18next, backend para carregar arquivos, integração com React e
possíveis plugins extras (Exemplo: i18next, i18next-chained-backend,
i18next-http-backend, react-i18next etc). Escolha e instale apenas os necessários ao seu
projeto.

Dica

Se você está usando Next.js, siga a documentação do React-i18next e ative apenas
plugins relevantes para SSR. Evite instalar dependências além do necessário.

Configurando o arquivo i18n.js ou .ts

Centralize toda lógica de configuração do i18n num arquivo só (ex: i18n.config.ts).
Defina o idioma padrão, como os arquivos de tradução vão ser carregados e customize
plugins conforme a stack da sua aplicação.

Atenção

Não deixe variáveis sensíveis logadas nesse arquivo. Utilize variáveis de ambiente
para URLs e caminhos de arquivos JSON. Faça cache de textos e organize por namespace
para garantir performance.

Separação inteligente dos textos: como montar os arquivos JSON

Crie uma pasta para cada idioma (por exemplo, ‘/locales/en’, ‘/locales/ptBR’). Dentro,
um arquivo JSON para cada módulo ou página (ex: pages.json). Use sempre as mesmas chaves
nos diferentes idiomas e organize textos por contexto para facilitar manutenções e
automações.

Dica de organização

Evite colocar textos longos ou dinâmicos demais nos JSONs. Prefira chaveamento conciso
e nomeie chaves com contexto: ex. “navbar.login”, “footer.description”.

Mude idiomas com Context API: experiência sólida

Utilize Context API para manter o idioma selecionado em toda a aplicação. Salve a
escolha no localstorage e restaure ao recarregar, garantindo que o usuário navegue sem
perder sua seleção, sem prop drilling nem states dispersos.

Traduza componentes à prova de futuro com useTranslation

Importe useTranslation do react-i18next. Envolva cada texto em sua aplicação usando ‘t’
do hook: simplifica, desacopla, e permite múltiplos idiomas com mudança instantânea. Não
há motivo para hardcode no JSX.

Alerta

Nunca traduza diretamente usando condicionais dentro do JSX ou layouts. Isso elimina
toda vantagem de manutenção do i18n e gera dívidas técnicas severas.

Integração com Selects inteligentes de idioma

Implemente selects de idioma usando bibliotecas prontas ou componha seu próprio. O
importante é garantir que o idioma selecionado seja reconhecido no contexto e ative a
linguagem corretamente para i18next.

Soluções para problemas clássicos de deploy e atualização

Atente-se à compatibilidade dos backends de tradução (ex: http-backend) para evitar
travamentos em produções (caso arquivos JSON mudem ou estejam em diferentes servidores).
Teste fallback de idioma e caching dos textos.

Dica final

Coloque sempre defaultTexts em typescript para planos de contingência. Se faltar algum
texto traduzido, o sistema nunca deve quebrar — e sim exibir fallback.

Mostre ao mundo: portfólio internacional, SaaS global

Com uma implementação bem feita de i18next, seu projeto está pronto para ser apresentado
para qualquer empresa, recrutador internacional ou usuário no mundo todo. Isso
diferencia o profissional júnior do pleno e do sênior: a capacidade de pensar escalável
e global.

Resumo do passo a passo campeão

1. Instale i18next + plugins essenciais. 2. Configure tudo em i18n.config.ts usando
backends apropriados e hooks providos pela biblioteca. 3. Separe todos textos em
arquivos JSON organizados. 4. Implemente um Context API ou Provider para gerenciamento
global do idioma. 5. Use o hook useTranslation em todos textos mostrados. 6. Faça
fallback em defaultTexts bem definidos. 7. Teste troca de idiomas, atualize arquivos
JSON e reforce o ciclo de deploy sem dor. E quem sabe faz ao vivo.

Ação extra

Quer ver tudo isso em vídeo e aprender fazendo? Assista a série completa no canal Dev
Doido e veja na prática como internacionalizar do zero ao PRO.

Perguntas frequentes

Por que «Onde isso impacta na vida real?» importa agora em Como internacionalizar projetos em React com i18next: Guia?

Extraia só o mecanismo de «Onde isso impacta na vida real?»: Seja seu SaaS atendendo outro país, uma vaga internacional exigindo portfólio em inglês, ou até uma startup implementando idiomas regionais – uma boa estrutura de i18n é pré-requisito profissional. Não importa se é startup ou multinacional: só escala quem.

Como isolar «Por trás do nome estranho: de onde vem i18n?» sem montar um plano de 30 dias?

Operação curta: "I18N" significa Internationalization – nada mais do que “i” + 18 letras no meio + “n”. Preguiça dos devs, claro, mas o conceito é sério: tornar qualquer sistema pronto para aceitar múltiplos idiomas e culturas sem sofrimento. Revise com evidência, não com feeling.

Qual restrição «O problema antigo de traduções: o que mudou com i18next» deixa explícita?

Do texto: Antes de 2011, toda tradução era feita “na raça” no front ou back. Múltiplos ifs, selects de bandeirinhas, duplicação de layouts e caos total. Só depois surgiu i18next, uma biblioteca que mudou o jogo para React, Next.js e todos ecossistemas modernos.

O que falha se você pular «Por que i18next virou padrão?»?

Open source, vasto suporte, integração nativa no React e Next.js e um ecossistema estável — o i18next existe desde 2011, teve suporte oficial desde backend Node.js até hooks dedicados para React, e é adotado por milhares de empresas de todos os tamanhos. Em «Por que i18next virou padrão?», trate como experimento com dono e prazo — não como lista de intenções.

Continue explorando

Perguntas frequentes

Por que «Onde isso impacta na vida real?» importa agora em Como internacionalizar projetos em React com i18next: Guia?

Extraia só o mecanismo de «Onde isso impacta na vida real?»: Seja seu SaaS atendendo outro país, uma vaga internacional exigindo portfólio em inglês, ou até uma startup implementando idiomas regionais – uma boa estrutura de i18n é pré-requisito profissional. Não importa se é startup ou multinacional: só escala quem.

Como isolar «Por trás do nome estranho: de onde vem i18n?» sem montar um plano de 30 dias?

Operação curta: "I18N" significa Internationalization – nada mais do que “i” + 18 letras no meio + “n”. Preguiça dos devs, claro, mas o conceito é sério: tornar qualquer sistema pronto para aceitar múltiplos idiomas e culturas sem sofrimento. Revise com evidência, não com feeling.

Qual restrição «O problema antigo de traduções: o que mudou com i18next» deixa explícita?

Do texto: Antes de 2011, toda tradução era feita “na raça” no front ou back. Múltiplos ifs, selects de bandeirinhas, duplicação de layouts e caos total. Só depois surgiu i18next, uma biblioteca que mudou o jogo para React, Next.js e todos ecossistemas modernos.

O que falha se você pular «Por que i18next virou padrão?»?

Open source, vasto suporte, integração nativa no React e Next.js e um ecossistema estável — o i18next existe desde 2011, teve suporte oficial desde backend Node.js até hooks dedicados para React, e é adotado por milhares de empresas de todos os tamanhos. Em «Por que i18next virou padrão?», trate como experimento com dono e prazo — não como lista de intenções.

Onde isso impacta na vida real?

Seja seu SaaS atendendo outro país, uma vaga internacional exigindo portfólio em inglês, ou até uma startup implementando idiomas regionais – uma boa estrutura de i18n é pré-requisito profissional. Não importa se é startup ou multinacional: só escala quem pensa global.

Por trás do nome estranho: de onde vem i18n?

"I18N" significa Internationalization – nada mais do que “i” + 18 letras no meio + “n”. Preguiça dos devs, claro, mas o conceito é sério: tornar qualquer sistema pronto para aceitar múltiplos idiomas e culturas sem sofrimento.

Por que i18next virou padrão?

Open source, vasto suporte, integração nativa no React e Next.js e um ecossistema estável — o i18next existe desde 2011, teve suporte oficial desde backend Node.js até hooks dedicados para React, e é adotado por milhares de empresas de todos os tamanhos.

Como funciona na prática? Veja o fluxo campeão

Primeiro você instala as dependências certas no seu projeto React ou Next.js. Depois configura um arquivo i18n de bootstrap. Cria arquivos JSON com os textos, separa por idioma, e usa hooks como useTranslation de React-i18next para chamar cada texto no código, sem dor.