Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
i18next è obsoleto nel 2026?
i18next è nato nel 2011, molto prima che i componenti React, il bundling con Webpack o TypeScript diventassero lo standard. Ha conquistato l'ecosistema grazie a flessibilità e capillarità, con plugin per ogni tecnologia e risposte su StackOverflow per qualsiasi dubbio.
Non è abbandonato, gli aggiornamenti escono regolarmente. Esiste però una differenza sostanziale tra mantenere attivo un motore collaudato ed evolversi con le moderne architetture frontend.
Negli ultimi anni, il mondo frontend si è spostato verso la compilazione in fase di build, i React Server Components (RSC), il tree-shaking aggressivo e i flussi guidati dall'IA. Il nucleo di i18next resta quello di dieci anni fa: un singleton a runtime che risolve chiavi di testo sul client.
Punti chiave
Fase di manutenzione:
Nell'ultimo anno, next-i18next ha registrato ~63 commit (circa uno a settimana) e react-i18next ~157, quasi tutti dedicati ad aggiornamenti di dipendenze e piccole correzioni.
Impatto pesante sul runtime:
react-i18next e next-i18next introducono ~17–18 KB gzipped (~60 KB minificati) prima ancora di renderizzare una sola parola, quasi il quadruplo di next-intlayer (~4.7 KB).
Perdita consistente di dati (leakage):
Nelle configurazioni statiche predefinite, fino al 89.8% dei contenuti di localizzazione inviati a una pagina appartiene ad altre route o a lingue non consultate.
Tree-shaking impossibile:
Chiamate dinamiche come t("home.hero.title") non possono essere interpretate dai bundler, costringendo l'intero catalogo JSON nel chunk del client.
Modello commerciale:
I maintainer gestiscono Locize. Sviluppare una pipeline di traduzione IA locale e gratuita direttamente nella CLI entrerebbe in concorrenza diretta con la loro principale fonte di ricavi.
Manutenzione vs. evoluzione attiva
Le stelle GitHub testimoniano l'adozione storica più che l'attuale dinamismo architetturale.
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
Attività negli ultimi 12 mesi:
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Progetto | Commit storici | Ultimi 12 mesi | Priorità |
|---|---|---|---|
next-i18next | 1.311 | 63 | Compatibilità Next.js e correzioni |
react-i18next | 1.988 | 157 | Tipi e manutenzione |
i18next core | 2.626 | 259 | Piccoli aggiornamenti |
| Intlayer | 7.156 | 4.343 | Compilatore, tooling IDE e motore IA |
Una libreria snella può essere solida e affidabile. Ma gli strumenti di i18n progrediscono costantemente: i bundler odierni eliminano i testi inutilizzati durante il build, gli LLM traducono direttamente in CI e gli editor si affidano a server di linguaggio (LSP) e agenti IA. L'architettura puramente a runtime di i18next limita queste possibilità.
Misurazione del costo sul bundle
Caricamento JSON dinamico
Carica le traduzioni in modalità lazy durante l'esecuzione
JSON con ambito (namespacing)
Spazi dei nomi di traduzione per pagina
Benchmark delle prestazioni I18n
Cos'è questa metrica?
La dimensione totale compressa con gzip del bundle della libreria di internazionalizzazione. Include solo il provider e la logica di recupero dei contenuti dopo il tree-shaking e la minificazione.
Perché è importante?
Una dimensione della libreria più piccola riduce il payload JavaScript iniziale, portando a tempi di download ed esecuzione più rapidi sul client.
Visualizza come
Misurato su build di produzione con 10 route e 10 lingue, compressione gzip attiva. Maggiori dettagli nel report del benchmark i18n.
Peso iniziale delle librerie
Impatto base prima dell'inserimento di qualsiasi testo tradotto:
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Libreria | Gzipped | Minificato |
|---|---|---|
next-i18next@16.0.5 | 17.8 KB | 61.2 KB |
react-i18next@17.0.2 | 17.3 KB | 59.8 KB |
intlayer@8.7.12 | 4.7 KB | 12.8 KB |
Peso della pagina e dispersione dei contenuti
Test eseguito con React / TanStack Start (strategia statica):
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Libreria | JS medio / pag (gz) | Dispersione lingue | Dispersione altre pag | Componente medio (gz) | Idratazione |
|---|---|---|---|---|---|
react-i18next | 180.3 KB | 50.0% | 89.8% | 24.3 KB | 85.1 ms |
| Intlayer | 127.8 KB | 50.0% | 0.8% | 7.1 KB | 24.1 ms |
| Intlayer (scoped dyn) | 118.1 KB | 0.0% | 0.8% | 4.6 KB | 23.7 ms |
Su Next.js:
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Libreria | JS medio / pag (gz) | Dispersione altre pag | Componente medio (gz) |
|---|---|---|---|
| Base (no i18n) | 150.8 KB | 0.0% | 0.7 KB |
next-i18next | 227.5 KB | 89.8% | 24.5 KB |
next-intlayer | 152.1 KB | 0.0% | 7.2 KB |
Risultati principali
Peso della pagina:
Su Next.js, next-i18next introduce 76.7 KB gzipped rispetto alla base (+50%). next-intlayer aggiunge appena 1.3 KB.
Dispersione delle traduzioni:
Di base, quasi il 90% dei testi caricati su una route appartiene ad altre pagine del sito. La separazione manuale per namespace è onerosa e fonte di imprecisioni.
Tempi di idratazione:
I componenti con react-i18next hanno impiegato 85 ms per idratarsi contro i 24 ms di Intlayer. Inviare grandi alberi JSON ai componenti client rallenta l'interattività.
Perché i18next è pesante?
Funzionalità accumulate a runtime
Operare interamente nel browser impone di includere tutte le funzioni all'avvio: interpolazione, regole di plurale, contesti, formattatori ed event bus. Anche per mostrare un testo elementare viene caricato l'intero motore.
Le chiavi dinamiche bloccano il tree-shaking
Poiché "hero.title" viene calcolata dinamicamente a runtime, i bundler non sanno quali chiavi vengano effettivamente lette. Le stringhe inutilizzate restano nel bundle.
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Il compilatore Intlayer esamina ciò che Hero.tsx richiama ed elimina i campi non utilizzati prima della generazione dei bundle. Consulta ottimizzazione del bundle per i dettagli.
Esperienza di sviluppo
File JSON isolati vs. co-locazione
Con i18next i testi sono collocati in directory JSON distinte dal codice. Intlayer organizza i file di contenuto direttamente accanto ai componenti:
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Spostando o cancellando Hero.tsx, anche i suoi testi vengono spostati o rimossi di pari passo.
Autocompletamento vs. rigida sicurezza dei tipi
Estendere CustomTypeOptions fornisce autocompletamento nell'editor, ma non assicura la presenza effettiva delle traduzioni. Rimuovere una chiave da it/home.json non interrompe il build, genera solo un fallback a runtime.
Intlayer deduce i tipi direttamente dalle dichiarazioni di contenuto, e lo strictMode trasforma le traduzioni mancanti in errori bloccanti al build.
Confronto degli strumenti
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Funzionalità | Ecosistema i18next | Intlayer |
|---|---|---|
| Estensione VS Code | Solo terze parti | ✅ Estensione ufficiale |
| Language Server (LSP) | ❌ Nessuno | ✅ LSP dedicato |
| Server MCP (per IA) | ❌ Nessuno | ✅ Server MCP integrato |
| Competenze agente (Skill) | ❌ Nessuna | ✅ Skill pronte all'uso |
| CMS Visuale in contesto | Locize (A pagamento) | ✅ Gratuito & Open Source |
Traduzione e il modello di Locize
Locize è il servizio commerciale ufficiale creato dagli autori di i18next. Il sostegno all'open source è fondamentale, tuttavia questo modello genera un compromesso: un progetto monetizzato con una piattaforma SaaS di traduzione ha scarso incentivo a integrare gratuitamente nella CLI un comando di traduzione IA locale.
Intlayer sceglie una visione aperta:
intlayer fillcompleta le traduzioni mancanti nel terminale o in CI tramite chiavi API proprietarie (OpenAI, Anthropic, Mistral, Gemini).- Il CMS Intlayer è open source e avviabile con Docker Compose.
- Compilatore, CLI, editor e CMS sono tutti con licenza Apache 2.0.
In quali casi i18next è ancora adatto?
Se l'applicazione risponde perfettamente alle esigenze e la dimensione del bundle non è critica, riscrivere il codice non è prioritario.
L'ampia gamma di plugin di i18next supporta scenari specifici (Electron, applicazioni jQuery legacy, bridge nativi dedicati) che i compilatori attuali raramente considerano.
Lo storico presente su StackOverflow e GitHub aiuta ad affrontare agilmente casi limite.
Come migliorare la mia configurazione i18next esistente?
Intlayer offre pacchetti di compatibilità pronti all'uso che replicano fedelmente le firme delle funzioni delle librerie i18next (i18next, react-i18next e next-i18next). Non è necessario riscrivere i componenti per beneficiare dei vantaggi di un'architettura guidata dal compilatore.
L'installazione si effettua con un solo comando:
Copiare il codice nella clipboard
Questa CLI interattiva:
- Installa il pacchetto di compatibilità
@intlayer/i18next. - Configura gli alias del bundler affinché le importazioni abituali (
useTranslation,Trans,t) puntino direttamente a Intlayer, consentendo di rimuovere la vecchia libreria dapackage.json. - Attiva all'istante il supporto del Language Server (LSP) nell'IDE, l'ottimizzazione del bundle in fase di compilazione (tree-shaking completo) e i flussi di traduzione IA locali.
Per istruzioni dettagliate, consulta le nostre guide dedicate:
- Livelli di compatibilità: Conserva il tuo codice esistente con gli adapter per i18next, react-i18next e next-i18next.
- Migrazione dei cataloghi: Converti i file JSON in dizionari tipizzati con le nostre guide: da i18next, da react-i18next o da next-i18next.
- Setup ibrido: Conserva il runtime di i18next mentre utilizzi Intlayer con i18next per tipizzare e autotradurre i cataloghi.
Valuta la tua applicazione con l'analizzatore SEO i18n gratuito:
Letture consigliate
Commenti
Ancora nessun commento. Sii il primo a condividere i tuoi pensieri.
