Magic Translate vs. i18next
i18next, com suas ligações React react-i18next, é a biblioteca i18n de código aberto mais popular para JavaScript. Ele é construído em torno de chaves de tradução e arquivos de idioma. Magic Translate traduz o texto em seus componentes diretamente, sem chaves ou arquivos. Esta página explica a diferença para que você possa escolher a ferramenta certa para seu aplicativo.
Em um piscar de olhos
| Magic Translate | i18next | |
|---|---|---|
| Como você escreve texto | Suas próprias palavras, embrulhadas em <T> | Uma chave por texto, como t('cart.title') |
| Traduções | Tradução automática, criada automaticamente | Você ou seus tradutores os escrevem |
| Arquivos de idioma | Nenhum | Um arquivo por idioma e namespace |
| Novos idiomas | Alterar a configuração language | Traduza cada chave para o novo idioma |
| Renderização do servidor | Componentes do servidor React e Next.js | Sim, com configuração extra |
| Plurais e formatação | Traduzido como parte da frase | Integrado, com regras plurais por idioma |
| Preço | Plano gratuito e, em seguida, planos mensais com base no uso | Código aberto e gratuito |
Como o código difere
Com react-i18next, você mantém um arquivo de idioma para cada idioma e se refere aos textos por chave:
// locales/en/translation.json{ "cart": { "title": "Your shopping cart" } }// Cart.tsximport { useTranslation } from 'react-i18next';const Cart = () => {const { t } = useTranslation();return <h2>{t('cart.title')}</h2>;};
Com Magic Translate, o texto permanece no componente:
import { T } from '@magic-translate/react';const Cart = () => (<h2><T>Your shopping cart</T></h2>);
Quando escolher Magic Translate
- Você quer seu aplicativo em vários idiomas sem gerenciar arquivos de idioma.
- Você não tem tradutores ou não quer esperar por eles antes de lançar uma nova versão.
- Seus textos mudam com frequência e você quer que todos os idiomas se mantenham atualizados.
- Você usa o React Server Components ou o Next.js e quer um HTML totalmente traduzido para os mecanismos de pesquisa.
Quando escolher i18next
- Todo texto deve ser traduzido ou revisado por uma pessoa.
- Você precisa de controle exato sobre formas plurais, datas e números em cada idioma.
- Você quer uma biblioteca gratuita e de código aberto sem serviço externo.
Mudando de i18next para Magic Translate
Você pode trocar um componente por vez. Substitua t('key') pelo texto em inglês do seu arquivo de idioma, encapsulado em <T>, ou use useT hook para props e atributos. As duas bibliotecas podem ser executadas lado a lado durante a migração.
Pronto para experimentar? Siga o guia de introdução para traduzir seu primeiro componente em cinco minutos.