Un solo comando dalle stringhe hardcoded a un'app localizzata
Gli strumenti di coding IA hanno cambiato chi pubblica software. Un'app costruita in un pomeriggio con v0, Lovable, Bolt o Cursor sembra finita, finché qualcuno chiede una seconda lingua e ti accorgi che ogni stringa è hardcoded. Internazionalizzare a posteriori significava finora un weekend intero: avvolgere stringhe, cablare i18next, creare un progetto, aggiungere lingue, far girare file.
Ora è un solo comando:
npx i18next-cli localizeIl nuovo super-comando localize di i18next-cli 1.62 concatena l'intero percorso (rilevare, strumentare, estrarre, connettere a Locize, tradurre con l'IA, consegnare) e termina con un'app localizzata e funzionante.
Com'è un'esecuzione
$ npx i18next-cli localize
i18next-cli localize — from hardcoded strings to a localized app
[1/6] Detecting project…
✔ react + TypeScript
[2/6] Configuration…
✔ locales: en, de, fr, it
[3/6] Instrumenting code…
✔ 96/101 candidate string(s) instrumented (5 skipped).
[4/6] Extracting translation keys…
✔ Translation keys extracted.
[5/6] Connecting to Locize…
One manual step — in your browser:
1. Sign up / log in
2. Create a project. Your target languages (en, de, fr, it) are
created automatically on the first sync.
3. Copy your Project ID and an API key.
[6/6] Translating & delivering…
✔ Synced to Locize with AI auto-translate requested.
Waiting for AI translations to arrive…
de: 96/96 (100%)
fr: 96/96 (100%)
it: 96/96 (100%)
✔ All languages translated and downloaded.
✅ Done. Your app is localized.
Your AI translations come with confidence scores; low-confidence ones
are flagged for review in Locize.Il passo 5 è l'unico momento manuale dell'intero flusso: registrarsi su Locize, creare un progetto, incollare due credenziali. Tutto il resto avviene automaticamente, inclusa la creazione delle lingue di destinazione. Se la tua configurazione o il tuo ambiente contengono già LOCIZE_PROJECTID/LOCIZE_API_KEY, anche quel passo scompare.
Cosa è appena successo
- Rilevamento: framework (React e Next.js nativamente), TypeScript, un'eventuale configurazione i18next esistente.
- Configurazione: usa il tuo
i18next.config.ts, o avvia il wizard interattivoinitse non esiste. - Strumentazione: avvolge le stringhe hardcoded in chiamate
t()e componenti<Trans>, iniettandouseTranslation()dove serve. Interattiva di default: approvi ogni modifica. È il comando instrument, un assistente, non un compilatore. - Estrazione: raccoglie ogni chiave nei tuoi file di locale.
- Connessione a Locize: registrazione guidata e nessuna configurazione manuale delle lingue, perché le lingue della tua configurazione vengono create automaticamente alla prima sincronizzazione (locize-cli ≥ 12.3, che alimenta i passi Locize).
- Traduzione e consegna: sincronizza con la traduzione automatica IA, attiva di default per i nuovi progetti e che usa il tuo glossario e il tuo styleguide come contesto. Il comando osserva poi l'arrivo delle traduzioni, le scarica e stampa lo snippet CDN di i18next-locize-backend, così le future correzioni di traduzione vanno online senza rideployare l'app.
Il progetto Locize dopo l'esecuzione: tutte e quattro le lingue al 100%, pubblicate automaticamente.

E poiché anche la Quality Estimation è attiva di default per i nuovi progetti, ogni traduzione IA arriva con un punteggio di confidenza; quelle a bassa confidenza vengono segnalate per la revisione invece di andare online in silenzio. E proprio in questa demo ha colto un caso reale:
Il tuo agente di coding IA può farlo per te
Le app per cui questo comando è stato costruito spesso sono state scritte da un agente. Perciò il flusso è disponibile anche come prompt:
npx i18next-cli localize --print-agent-promptQuesto stampa istruzioni passo passo per Claude Code, Cursor o qualsiasi agente di coding, usando i singoli comandi della CLI (instrument --dry-run, extract, locize-sync, …) invece del super-comando interattivo. Il prompt è allineato alla versione della CLI installata, quindi non diverge mai da ciò che fa localize stesso. Incollalo nel tuo agente, fornisci le due credenziali Locize quando le chiede e rivedi il diff alla fine.
Limiti onesti
- Rivedi il diff della strumentazione. La strumentazione è euristica e interattiva per una buona ragione: approva le modifiche stringa per stringa e aspettati di aggiustarne alcune (nomi di brand, etichette dinamiche). Un albero git non committato fa scattare prima una richiesta di conferma, e
--dry-runmostra tutto in anteprima senza scrivere. - Next.js App Router:
instrumentiniettauseTranslation(), che è solo client. Controlla i componenti server nel diff e aggiungi'use client'o passali a un patternt()lato server. - Gli stack non React degradano con grazia. La trasformazione copre React/JSX di serie; per Vue o Svelte aggiungi un plugin della community (i18next-cli-vue, i18next-cli-plugin-svelte). Senza plugin, il passo di strumentazione viene saltato con indicazioni, e il resto del flusso (estrazione → Locize → traduzione automatica) viene eseguito comunque.
- La traduzione IA parte quando il progetto ha un abbonamento o quando è configurata la tua chiave di un provider IA/MT. La sincronizzazione in sé funziona in entrambi i casi, e rieseguire
localizepiù tardi completa il lavoro: il comando è idempotente, i passi già completati vengono semplicemente saltati.
Per iniziare
Nella root del tuo progetto:
npx i18next-cli localizeOppure fai prima un'anteprima con npx i18next-cli localize --dry-run. Il riferimento completo delle opzioni (modalità CI, --skip-instrument, namespace, …) è nel README di i18next-cli, e il lato Locize nella documentazione CLI.
Se hai rimandato la localizzazione per colpa dell'impianto idraulico: l'impianto non c'è più. Crea un account Locize gratuito ed esegui il comando.
Stanco di gestire le traduzioni a mano?
Locize è il backend di gestione delle traduzioni creato dal team di i18next: distribuzione via CDN, traduzione con AI, editing in-context, senza nuovi deploy.
Inizia la prova gratuita di 14 giorni