Rendere multilingue un’app Lovable nel modo giusto significa versionare cataloghi di traduzione reali nel repository e mantenerli sincronizzati automaticamente, non aggiungere un widget di traduzione sopra l’interfaccia. globalize.now è un’infrastruttura di localizzazione basata su IA che estrae le stringhe hardcoded, prepara cataloghi PO e li aggiorna a ogni push su Git. Gli strumenti rapidi ti danno una demo multilingue in pochi minuti. Ma lasciano anche traduzioni che divergono, layout che cambiano al caricamento e pagine difficili da leggere per i motori di ricerca. Ecco una configurazione che regge fino al dodicesimo rilascio.


Cosa significa davvero «multilingue nel modo giusto» per un’app Lovable?

Significa che le traduzioni vivono nella codebase sotto forma di cataloghi versionati, vengono servite nel markup iniziale e si aggiornano automaticamente quando l’app cambia.

Ogni vera app multilingue ha tre livelli. Una libreria runtime i18n serve la stringa corretta per la locale attiva. I cataloghi di traduzione contengono le traduzioni effettive. E qualcosa deve mantenerli aggiornati mentre l’interfaccia evolve. La maggior parte delle guide per Lovable copre il primo livello e salta il terzo, proprio quello che poi si rompe.

Lovable è progettato per modificare rapidamente l’interfaccia. Ogni prompt può aggiungere, rinominare o ristrutturare il testo visibile agli utenti. Quindi la domanda non è «come traduco l’app una volta sola?». È «come mantengo complete tutte le lingue mentre continuo a dare prompt?». Se sbagli, rilasci un’interfaccia con lingue mescolate, uno dei modi più rapidi per perdere fiducia in un mercato non anglofono.


Perché i widget di traduzione non bastano per le app Lovable?

Traducono i contenuti dopo il caricamento della pagina, sostituendo un problema di manutenzione invisibile con un problema visibile di performance e SEO.

I traduttori runtime come Weglot, Lovalingo e i widget di traduzione iniettati sono la prima risposta più comune per Lovable, perché si installano in pochi minuti e non richiedono file di traduzione. Il costo emerge dopo. L’utente vede per un attimo la lingua originale prima che subentri la traduzione: è un flash di contenuto non tradotto. Questo cambio sposta il layout e aggiunge Cumulative Layout Shift, che Google misura tra i Core Web Vitals.

Il problema più profondo è la discoverability. Se il testo tradotto esiste solo dopo l’esecuzione del JavaScript lato client, di solito hai una sola pagina reale più una traduzione nel browser. Gli URL per lingua sono deboli o assenti, quindi le pagine in spagnolo e tedesco non si posizionano come farebbe un sito localizzato correttamente. Un widget può essere la scelta giusta per uno strumento interno o una demo usa e getta. Per un’app che vuoi far trovare in altri mercati, è una base sbagliata.


Una configurazione i18n una tantum mantiene tradotta un’app Lovable?

No. Un’estrazione pulita funziona fino al prompt successivo. Poi inizia la deriva.

Puoi chiedere a Lovable, Cursor o Claude Code di integrare una libreria i18n corretta e inserire ogni stringa nei cataloghi di traduzione. Funziona davvero sulla build su cui lo esegui. Il problema è che non esiste un punto naturale in cui l’estrazione sia «completata». La sezione prezzi successiva, il nuovo stato vuoto e la nuova etichetta di un pulsante arrivano tutti come stringhe hardcoded, mentre i cataloghi restano silenziosamente indietro.

L’alternativa manuale — chiedere a Lovable di aggiornare ogni catalogo a ogni modifica — sembra disciplinata e nella pratica crolla. Devi ricordartelo per ogni stringa, in ogni lingua, a ogni prompt. Moltiplica tutto per quattro lingue e ogni modifica all’interfaccia diventa un esercizio di coordinamento. È proprio questo attrito a uccidere la velocità che rende Lovable utile.


Come rendo multilingue la mia app Lovable, passo dopo passo?

Prima di iniziare: collega il progetto Lovable a GitHub — menu + nel campo di input della chat, poi GitHub e Connect project —, crea un account globalize.now — registrazione gratuita, 5 € di credito iniziale, senza carta — e assicurati di essere owner o admin del workspace Lovable, così puoi aggiungere la skill una sola volta per il workspace.

Collega il repository, aggiungi una volta la skill lovable-i18n e lascia che la sincronizzazione parta a ogni push. Ecco il percorso completo.

  1. Collega il progetto Lovable a GitHub. Usa il menu + nel campo di input della chat, poi GitHub e Connect project. Lovable sincronizza il progetto con un repository reale: è questo che rende possibile un’i18n duratura. Tutto ciò che segue opera su quel repository, non dentro una black box.
  2. Aggiungi la skill lovable-i18n al workspace. Lovable supporta le skill riutilizzabili. Apri Skills nel workspace Lovable, poi Add e Import from GitHub, quindi incolla https://github.com/globalize-now/globalize-skills/tree/main/skills/lovable-i18n. Conferma. Va fatto una volta per workspace; serve essere owner o admin del workspace. Aggiungere una skill è gratuito e non consuma crediti. Sviluppi invece in Cursor o Claude Code? Esegui npx skills add globalize-now/globalize-skills nel repository collegato.
  3. Chiedi a Lovable di configurarlo. Incolla nella chat di Lovable: Set up i18n for my project using the lovable-i18n skill.. Lovable rileva lo stack — Vite SPA o TanStack Start — e pone una domanda: lingua sorgente, lingue target, locale nell’URL oppure no, aggiunta della GitHub Action. Rispondi go per usare i valori predefiniti. Installa Lingui — @lingui/core, @lingui/react e il plugin Vite —, configura il provider, prepara un catalogo PO per ogni locale in src/locales/{locale}/messages.po, racchiude le stringhe nelle macro <Trans> e aggiunge un selettore di lingua.
  4. Rivedi ed esegui il merge. Lovable sincronizza con GitHub; rivedi la diff ed esegui il merge nel tuo branch predefinito.
  5. Collega il repository a globalize.now. Accedi, poi seleziona Connect repository, autorizza l’app GitHub, scegli il repository Lovable e il branch predefinito, quindi seleziona le lingue — oltre 50, incluse quelle RTL.
  6. Continua a sviluppare in Lovable. A ogni push, globalize.now apre una PR di traduzione con i cataloghi PO aggiornati. Uniscila. La tua app viene rilasciata tradotta. Tra un rilascio e l’altro non devi fare altro.

Il punto importante è nei passaggi da tre a sei: la configurazione avviene una volta sola e la sincronizzazione continua non richiede comandi, dashboard né code di revisione. Per la procedura completa d’integrazione, consulta la pagina d’integrazione di Lovable.


Quale libreria i18n dovrebbe usare un’app Lovable?

La skill lovable-i18n installa Lingui, perché le app Lovable sono progetti React Vite SPA o TanStack Start e Lingui si adatta bene a questo stack.

La skill configura @lingui/core, @lingui/react e il plugin Vite, prepara i cataloghi PO in src/locales/{locale}/messages.po e racchiude le stringhe nelle macro <Trans>. react-i18next e next-intl sono le scelte giuste per altre configurazioni React e Next.js, ma la skill non li installa.

Evita di inventare un context di traduzione personalizzato o di hardcodare una mappa delle lingue. Il primo giorno sembra più leggero; il trentesimo è la cosa che devi eliminare. La pagina per sviluppatori di globalize.now spiega come l’estrazione si integra con ogni libreria, così non scegli alla cieca.


Come mantengo sincronizzate le traduzioni mentre continuo a dare prompt a Lovable?

Sposta la sincronizzazione nel workflow Git, così non può essere dimenticata.

Il motivo per cui l’i18n manuale fallisce è che dipende dal fatto che qualcuno si ricordi di svolgere un’attività ripetitiva durante un ciclo di sviluppo rapido. L’infrastruttura elimina la persona dal loop. Quando il diff e il passaggio di traduzione vengono eseguiti a ogni push, una nuova stringa creata da un prompt Lovable viene intercettata in quel push, tradotta e restituita tramite PR prima del merge del branch. Non esiste un rilascio in cui i cataloghi PO restano silenziosamente indietro, perché non c’è un passaggio manuale da saltare.

Questa è la differenza tra una configurazione e un’infrastruttura. Una configurazione è uno stato che raggiungi una volta. L’infrastruttura è una proprietà che resta valida mentre tutto intorno cambia. Per un’app che continui a modificare in Lovable vuoi la proprietà, non lo stato. Trovi maggiori dettagli sul workflow per le app costruite con IA nella pagina per vibe coder; se stai valutando gli strumenti, la guida comparativa mostra dove si colloca ciascuno nello stack.


Iniziare a rendere multilingue un’app Lovable è facile; mantenerla così è difficile. globalize.now gestisce il mantenimento. In Lovable, aggiungi la skill lovable-i18n da Open Skills, poi Add e Import from GitHub, indicando globalize-now/lovable-i18n. In Cursor o Claude Code, esegui npx skills add globalize-now/globalize-skills. Consulta la guida all’integrazione di Lovable o globalize.now.

globalize.now trasforma il testo hardcoded dell'app in file di localizzazione pronti e li mantiene aggiornati mentre rilasci.

Prova globalize.now gratis