Magic Translate vs. i18next
i18next, con i suoi collegamenti React react-i18next, è la libreria i18n open source più popolare per JavaScript. È basato su chiavi di traduzione e file di lingua. Magic Translate traduce direttamente il testo nei tuoi componenti, senza chiavi o file. Questa pagina spiega la differenza in modo che tu possa scegliere lo strumento giusto per la tua app.
A colpo d'occhio
| Magic Translate | i18next | |
|---|---|---|
| Come scrivi un testo | Parole tue, racchiuse in <T> | Una chiave per testo, ad esempio t('cart.title') |
| Traduzioni | Traduzione automatica, creata automaticamente | Li scrivete tu o i tuoi traduttori |
| File di lingua | Nessuna | Un file per lingua e namespace |
| Nuove lingue | Cambia l'impostazione language | Traduci ogni chiave nella nuova lingua |
| Rendering del server | Componenti del server React e Next.js | Sì, con una configurazione aggiuntiva |
| Plurali e formattazione | Tradotto come parte della frase | Integrato, con regole plurali per lingua |
| Prezzo | Piano gratuito, poi piani mensili in base all'utilizzo | Open source e gratuito |
In che modo il codice è diverso
Con react-i18next, conservi un file di lingua per ogni lingua e fai riferimento ai testi per chiave:
// 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>;};
Con Magic Translate, il testo rimane nel componente:
import { T } from '@magic-translate/react';const Cart = () => (<h2><T>Your shopping cart</T></h2>);
Quando scegliere Magic Translate
- Vuoi che la tua app sia in molte lingue senza gestire i file di lingua.
- Non hai traduttori o non vuoi aspettarli prima di rilasciare una nuova versione.
- I tuoi testi cambiano spesso e vuoi che tutte le lingue rimangano aggiornate.
- Tu usi React Server Components o Next.js e desideri un codice HTML completamente tradotto per i motori di ricerca.
Quando scegliere i18next
- Ogni testo deve essere tradotto o revisionato da una persona.
- Hai bisogno di un controllo esatto su forme plurali, date e numeri in ogni lingua.
- Vuoi una libreria open source gratuita senza servizi esterni.
Passare da i18next a Magic Translate
Puoi cambiare un componente alla volta. Sostituisci t('key') con il testo in inglese del tuo file di lingua, racchiuso in <T>, o usa useT hook per props e attributi. Entrambe le librerie possono funzionare fianco a fianco durante la migrazione.
Pronto a provarlo? Segui la guida introduttiva per tradurre il tuo primo componente in cinque minuti.