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
vue-i18n è obsoleto nel 2026?
Nell'ecosistema Vue, poche librerie hanno raggiunto la diffusione di vue-i18n. Curata da Kazupon fin dai tempi di Vue 2, costituisce la base di @nuxtjs/i18n e la prima scelta per i progetti multilingua in Vue.
Tuttavia, i test comparativi del 2026 hanno evidenziato un dato inatteso: vue-i18n è risultato il runtime di localizzazione più pesante tra tutti i framework frontend analizzati.
Partendo da una configurazione snella Vite + Vue di soli 31.5 KB, l'aggiunta di vue-i18n ha innalzato il JavaScript medio per pagina a 136.4 KB, quadruplicando il peso iniziale.
Per quale ragione un framework celebre per l'essenzialità si ritrova con uno stack i18n così corposo? E la sua architettura interamente a runtime è ancora attuale?
Punti chiave
Il runtime più voluminoso testato:
Con 24.3 KB gzipped (83.2 KB minificati) prima di inserire qualsiasi testo, vue-i18n risulta circa 9 volte più pesante del runtime di intlayer (2.7 KB).
Un aumento del 330% sul payload della pagina:
vue-i18n ha portato una pagina base da 31.5 KB a 136.4 KB. Intlayer genera invece 59.3 KB, un payload inferiore del 56%.
Un compilatore nascosto nel browser:
Per impostazione predefinita, senza alias dedicati configurati nel bundler, vue-i18n invia un intero compilatore al browser per interpretare le stringhe al volo.
Ritmo di manutenzione:
Nell'ultimo anno vue-i18n ha totalizzato ~259 commit, orientati alla risoluzione di bug e all'allineamento con le release di Vue.
Assenza di strumenti moderni di primo livello:
Nessun supporto nativo a Language Server (LSP), server MCP per IA o flussi automatizzati di traduzione via CLI.
Manutenzione vs. tooling contemporaneo
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
Attività negli ultimi 12 mesi:
intlify/vue-i18n: 259 commit (manutenzione ordinaria per Vue 3 e Nuxt).aymericzip/intlayer: 4.343 commit (ottimizzazioni di compilazione, integrazioni LSP e supporto ad agenti IA).
Una libreria matura assicura affidabilità. Tuttavia le architetture odierne impiegano trasformazioni AST al build, eliminazione di codice morto e automazione con IA. Un'impostazione incentrata unicamente sul runtime fa fatica ad adottare questi paradigmi.
Misurazione delle performance con Vite + Vue
Test eseguito su un'applicazione di 10 pagine e 10 lingue realizzata con Vite e Vue 3:
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
Test condotti in browser reali con compressione gzip. Dati completi nella documentazione del benchmark Vue.
Peso iniziale delle librerie
Impatto iniziale prima dell'inclusione di qualsiasi stringa:
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Libreria | Gzipped | Minificato |
|---|---|---|
vue-i18n@11.4.0 | 24.3 KB | 83.2 KB |
intlayer@8.7.12 | 2.7 KB | 7.6 KB |
Il runtime di vue-i18n da solo pesa 24.3 KB gzipped, quasi l'intero core di Vue. Intlayer aggiunge appena 2.7 KB.
Peso delle pagine e dispersione dei contenuti
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Configurazione | JS medio / pag (gz) | Dispersione lingue | Dispersione altre pag | Componente medio (gz) |
|---|---|---|---|---|
| Base (no i18n) | 31.5 KB | 0.0% | 90.0% | 0.9 KB |
vue-i18n | 136.4 KB | 50.2% | 90.0% | 196.0 KB |
| Intlayer | 59.3 KB | 51.1% | 0.0% | 6.5 KB |
Riscontri principali
Espansione proporzionale significativa:
Dato che l'infrastruttura di Vue è estremamente leggera (~31 KB), l'impatto di vue-i18n quadruplica il carico della pagina.
Dispersione verso altre route:
Per impostazione predefinita, il 90% dei testi caricati su una route appartiene ad altre sezioni. Intlayer azzera questa dispersione al 0.0%.
Peso dei componenti isolati:
I componenti con ambiti di localizzazione hanno raggiunto una media di 196 KB sotto vue-i18n a causa della replicazione dei cataloghi, contro i 6.5 KB ottenuti con Intlayer.
Perché vue-i18n è pesante?
Compilatore AST distribuito al browser
vue-i18n racchiude un compilatore interno di formati. Plurali e variabili vengono elaborati come alberi sintattici astratti (AST) direttamente a runtime.
Per evitarlo occorre configurare alias specifici nel bundler verso vue-i18n/dist/vue-i18n.runtime.esm-bundler.js e precompilare i file con @intlify/unplugin-vue-i18n. Molti progetti trascurano questo passaggio.
Funzionalità monolitiche
vue-i18n comprende motori di formattazione per numeri e date, gestione di messaggi concatenati, bridge per l'Options API classica ($t, v-t) e proxy reattivi. Anche volendo gestire testi essenziali in <script setup>, si carica comunque l'intero pacchetto.
Le chiavi dinamiche ostacolano il tree-shaking
Poiché "home.hero.title" è risolta a runtime, gli strumenti di bundling non sanno quali stringhe vengano effettivamente impiegate. I testi inutilizzati rimangono quindi nel bundle.
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Il compilatore Intlayer identifica le proprietà lette ed estromette i contenuti superflui prima di generare i chunk del client. Maggiori dettagli nell'ottimizzazione del bundle.
Esperienza di sviluppo
Cataloghi isolati vs. co-locazione
Con vue-i18n, i testi sono conservati in una cartella locales/ separata. Intlayer favorisce la co-locazione dei 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
Eliminando o modificando Hero.vue, i file di contenuto correlati vengono aggiornati o rimossi di conseguenza.
Autocompletamento vs. completezza garantita
DefineLocaleMessage fornisce autocompletamento nell'editor sulla base dello schema principale. Tuttavia non assicura che ogni lingua sia completa. L'omissione di una chiave in it.json non arresta il build con TypeScript.
Intlayer convalida rigorosamente i dizionari. Abilitando strictMode, ogni traduzione mancante genera un errore bloccante in fase di compilazione.
Strumenti per IDE e IA
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Funzionalità | vue-i18n | Intlayer |
|---|---|---|
| Estensione VS Code | Terze parti (i18n Ally) | ✅ Estensione ufficiale |
| Language Server (LSP) | ❌ Nessuno | ✅ LSP integrato |
| Server MCP per IA | ❌ Nessuno | ✅ Server MCP dedicato |
| Competenze agente (Skill) | ❌ Nessuna | ✅ Skill autonome |
| CMS Visuale in contesto | ❌ Nessuno | ✅ CMS gratuito & Open Source |
Flussi di traduzione
vue-i18n non include comandi nativi per tradurre. Gli sviluppatori esportano solitamente i file verso piattaforme esterne come Crowdin o Phrase.
Intlayer offre questi strumenti direttamente:
Completamento automatico tramite IA locale (intlayer fill):
Traduce le chiavi assenti sfruttando le tue chiavi API di OpenAI, Anthropic, Mistral o Gemini.
CMS visuale auto-ospitabile:
Impiega il CMS Intlayer per consentire ai collaboratori non tecnici di intervenire sui testi con salvataggio diretto su Git.
Licenza open source permissiva:
L'intero set di strumenti è coperto da licenza Apache 2.0.
Quando vue-i18n rappresenta ancora una scelta adeguata?
Qualora il routing dipenda fortemente da @nuxtjs/i18n, ripensare l'infrastruttura può non risultare vantaggioso.
Se il sistema sfrutta regole articolate di plurali, orari o messaggi concatenati complessi.
Qualora l'impatto sul bundle non costituisca un fattore rilevante per le finalità del progetto.
Come migliorare la mia configurazione vue-i18n esistente?
Intlayer offre pacchetti di compatibilità drop-in che riproducono con precisione le firme di funzione di vue-i18n e @nuxtjs/i18n (useI18n, $t, <i18n-t>). Non è necessario riscrivere template o composable per usufruire di un'architettura leggera guidata dal compilatore.
L'installazione si completa con un solo comando:
Copiare il codice nella clipboard
Questa CLI interattiva:
- Installa il pacchetto di compatibilità
@intlayer/vue-i18no@intlayer/nuxt-i18n. - Configura gli alias di Vite o Nuxt affinché le importazioni e i template esistenti facciano riferimento a Intlayer, consentendo di rimuovere
vue-i18ndapackage.json. - Attiva istantaneamente le diagnostiche del Language Server (LSP), rimuove il parser AST da 24 KB dal bundle client e sblocca flussi locali di traduzione tramite IA senza complesse riorganizzazioni.
Per istruzioni dettagliate, consulta le nostre guide dedicate:
- Compatibilità immediata: Conserva i template esistenti impiegando il layer di compatibilità
vue-i18no@nuxtjs/i18n. - Guide per la migrazione: Converti i file JSON tradizionali in dizionari strutturati tramite le nostre guide: da vue-i18n o da @nuxtjs/i18n.
- Configurazione ibrida: Mantieni
vue-i18na runtime mentre utilizzi Intlayer con vue-i18n per introdurre tipizzazione rigida e traduzione IA locale.
Analizza il carico di trasferimento del tuo sito con l'analizzatore SEO i18n gratuito:
Articoli consigliati
Commenti
Ancora nessun commento. Sii il primo a condividere i tuoi pensieri.
