Localizzazione continua: ogni lingua, a ogni merge.
La localizzazione continua traduce le stringhe nuove e modificate man mano che il codice cambia, invece di farlo in una fase separata prima di ogni rilascio. Ogni lingua è sempre pronta per essere rilasciata insieme al codice che la richiede.
Che cos’è la localizzazione continua?
La localizzazione continua è un metodo di lavoro in cui le stringhe nuove e modificate vengono inviate alla traduzione automaticamente non appena cambiano e il testo tradotto ritorna nel prodotto senza che nessuno debba pianificarlo.
Non esiste una fase di traduzione, perché la traduzione non si ferma mai. Uno sviluppatore unisce una stringa, le traduzioni seguono lo stesso flusso del codice e un rilascio non dipende dai file di nessuno.
È la metà di localizzazione della continuous delivery. Un team che effettua il merge ogni giorno e affida la traduzione ogni poche settimane ha lingue in ritardo rispetto al codice per la maggior parte di ogni mese. La localizzazione continua riduce questo divario alla durata di una singola esecuzione.
Non significa che l’output automatico venga pubblicato senza revisione. Decidi quali stringhe richiedono l’intervento di una persona e un rilascio può includere solo ciò che è stato revisionato.
La differenza sta nel momento in cui avviene la traduzione, non in chi la esegue.
| Ciò che cambia | Consegna in batch | Continuo |
|---|---|---|
| Affiancato | ||
| Quando avviene la traduzione | In una fase precedente a ogni rilascio | Man mano che ogni stringa cambia |
| Cosa lo avvia | Qualcuno esporta un file | Un push, un merge o una modifica dei contenuti |
| La dimensione di ogni parte | Settimane di stringhe tutte insieme | Le stringhe in una singola modifica |
| Cosa attende un rilascio | Il ritorno del file | Revisione, sulle stringhe che hai contrassegnato |
| Una modifica tardiva della copia | Un altro viaggio di andata e ritorno | Una nuova esecuzione per quella singola chiave |
| Su cosa lavora il traduttore | Un foglio di calcolo di stringhe | La riga, con i termini del glossario, le corrispondenze dalla memoria e gli screenshot |
| Lingue al lancio | Scaglionate, un’onda dopo l’altra | Insieme alla funzionalità |
- Quando avviene la traduzione
- In una fase precedente a ogni rilascio
- Cosa lo avvia
- Qualcuno esporta un file
- La dimensione di ogni parte
- Settimane di stringhe tutte insieme
- Cosa attende un rilascio
- Il ritorno del file
- Una modifica tardiva della copia
- Un altro viaggio di andata e ritorno
- Su cosa lavora il traduttore
- Un foglio di calcolo di stringhe
- Lingue al lancio
- Scaglionate, un’onda dopo l’altra
- Quando avviene la traduzione
- Man mano che ogni stringa cambia
- Cosa lo avvia
- Un push, un merge o una modifica dei contenuti
- La dimensione di ogni parte
- Le stringhe in una singola modifica
- Cosa attende un rilascio
- Revisione, sulle stringhe che hai contrassegnato
- Una modifica tardiva della copia
- Una nuova esecuzione per quella singola chiave
- Su cosa lavora il traduttore
- La riga, con i termini del glossario, le corrispondenze dalla memoria e gli screenshot
- Lingue al lancio
- Insieme alla funzionalità
Come funziona la localizzazione continua
Segui una nuova stringa attraverso il ciclo. Ogni passaggio mostra ciò che vedresti realmente.
La modifica raggiunge Transglot tramite la CLI, l’azione GitHub o l’app sul tuo host Git. I file sorgente vengono analizzati in uno dei 20 formati nativi e ogni stringa viene confrontata con quanto già presente nel progetto. Procedono solo le stringhe nuove o modificate.
Una corrispondenza esatta dalla memoria di traduzione compila la riga e non costa parole. Ciò che resta va a Glossa con il tuo glossario, la tua guida di stile e il contesto di quella chiave.
I segnaposto, le forme plurali, i termini del glossario e la lunghezza vengono controllati su ogni riga di ogni esecuzione. Un segnaposto errato, una forma plurale mancante o un termine del glossario vietato viene corretto una volta e ricontrollato; se fallisce una seconda volta, viene rifiutato e non distribuito. Una riga che supera solo il limite di lunghezza viene scritta e, dal piano Team, l’approvazione automatica o un’esecuzione QA la segnala per la revisione.
Un’esecuzione non sovrascrive mai una riga modificata o rivista da una persona. Se la sorgente cambia in seguito, il testo rimane, l’esecuzione conta la riga e te lo segnala; dal piano Team, un aggiornamento suggerito resta in attesa accanto ad essa perché qualcuno lo accetti.
Le app Git eseguono il commit dei file di localizzazione su un branch di sincronizzazione e mantengono aggiornata una singola pull request. Su GitHub, commenta /translate su una pull request e i file verranno inseriti nel branch dedicato a quella pull request. Oppure pubblica sulla CDN: il prodotto in produzione leggerà la modifica senza necessità di alcun rilascio.
Sei modi in cui la localizzazione continua va storta e cosa impedisce ciascuno di essi
Un’esecuzione sovrascrive il lavoro di una persona
Ogni writer controlla prima lo stato della riga: un’esecuzione, una corrispondenza in memoria e un push. Una riga modificata o rivista da una persona viene mantenuta e l’esecuzione la segnala.
→fr, revisionato, sorgente appena cambiata
✓mantenuto, contato, segnalato
Una stringa errata raggiunge la produzione
Ogni token inserito deve essere restituito. In un progetto ICU, un messaggio che genererebbe un errore in fase di rendering viene escluso dalla pull request, dal connettore e dal bundle CDN, e l'esecuzione lo segnala.
→{count, plural, one {# article}
✓escluso dal file, segnalato nell'esecuzione
Il repository si riempie di pull request dei bot
Un branch di sincronizzazione e una pull request per repository. Due push rapidi convergono su di esso invece di aprirne un secondo.
→#812 #815 #819 #823 aggiornamento l10n
✓#812 transglot/sync, aggiornato sul posto
Una modifica alla sorgente lascia indietro le vecchie traduzioni
Ogni riga di destinazione registra la sorgente rispetto alla quale è stata scritta, quindi una stringa modificata viene riconosciuta come obsoleta in tutte le lingue contemporaneamente e solo quella chiave viene elaborata nuovamente.
→Salva è diventato Salva bozza. fr, de, ja dicono ancora Salva
✓fr, de, ja vengono elaborati nuovamente per quella singola chiave
Ogni esecuzione fattura nuovamente l'intero progetto
Un'esecuzione è dimensionata in base a ciò che è cambiato. Una stringa invariata non viene inviata, una corrispondenza esatta nella memoria non ha costo in parole e una riga di proprietà di una persona viene rifiutata prima di qualsiasi addebito.
→il file contiene 48.000 parole
✓questa esecuzione: 60 parole
Una pull request incompleta cancella un file di localizzazione
Se il server non riporta voci per una locale, la pull request si rifiuta di sovrascrivere un file che ha contenuto ed esce con codice 1, fermando la pipeline.
→pull: 0 voci per ja, il file ne contiene 1.204
✓rifiuto di sovrascrivere locales/ja.json con un bundle vuoto
- run 4182 fr: segnaposto mancante nella bozza, riparato al nuovo tentativo
- run 4182 de: 3 righe mantenute, sono di proprietà di una persona
- run 4182 ja: 41 righe dalla memoria, 0 parole
- run 4183 ar: forma plurale mancante dopo il nuovo tentativo, riga rifiutata
- pull scritto locales/pt-BR.json
- sync transglot/sync aggiornato, pull request #812
Tutti e tre si collegano al tuo repository. La differenza sta in ciò che accade quando esegui il merge.
Letto dalle pagine ufficiali di ciascuna azienda il 5 novembre 2026. La riga dei prezzi proviene dalle nostre pagine di confronto, linkate di seguito, che mostrano il piano e i calcoli. Prezzi e piani cambiano, quindi verificateli prima di decidere.
| Cosa succede | Transglot | Lokalise | Crowdin |
|---|---|---|---|
| Viene merged una nuova stringa | Tradotto per impostazione predefinita L’invio avvia l’esecuzione. Un’impostazione del progetto la disattiva. | Tradotto una volta configurato Le automazioni sono disattivate per impostazione predefinita alla creazione delle chiavi e all’importazione dei file. Un flusso di lavoro con un passaggio AI viene eseguito in base alla sua pianificazione. | Tradotto una volta attivato In Impostazioni, Traduzione automatica, viene eseguito a ogni caricamento. La sincronizzazione Git viene eseguita ogni ora per impostazione predefinita. |
| Una traduzione non supera un controllo | Riparato una volta, poi rifiutato Per un segnaposto danneggiato, una forma plurale o un termine vietato, su ogni riga di ogni esecuzione. Viene registrato un superamento della lunghezza. In un progetto ICU, una riga danneggiata rimane esclusa dal pull, dai connettori e dalla CDN. | Un controllo di livello Errore blocca il salvataggio nell’editor Ogni controllo è impostato su Disattivato, Avviso o Errore. | Un controllo di livello Errore blocca il salvataggio Ogni controllo è impostato su Avviso o Errore. |
| Una persona ha già modificato la riga | L’esecuzione si rifiuta di scriverla Lo stesso vale per una corrispondenza nella memoria di traduzione e per un push. Se la sorgente cambia in seguito, l’esecuzione segnala la riga. | Le automazioni compilano i valori vuoti per impostazione predefinita Un’opzione di forzatura e un’azione di cancellazione sovrascrivono quelli compilati. | Le opzioni mantengono le righe umane e approvate È disponibile anche un’opzione di sostituzione totale. |
| Pull request in un repository ad alta attività | Un branch, una pull request Aggiornato sul posto a ogni push. | Un nuovo branch per ogni pull request Denominato con un timestamp. | Un branch di servizio, sincronizzato ogni ora Ogni ora è l’impostazione predefinita e l’intervallo può essere modificato. |
| Cosa conteggia il piano | Parole tradotte, una volta per lingua Le corrispondenze esatte nella memoria di traduzione non hanno costo. L’archiviazione di una stringa non ha costo. | Parole elaborate La lingua di base e quella di destinazione vengono entrambe conteggiate. | Parole ospitate Parole da tradurre, moltiplicate per le lingue di destinazione. |
| Ciò che copre i costi dell'IA | Le parole del piano Non viene fatturato separatamente. | Quote di parole IA per piano Le parole per Standard AI e Pro AI costituiscono voci separate nel piano. | Un saldo separato o la tua chiave personale L'IA gestita di Crowdin viene pagata tramite crediti, al di fuori dell'abbonamento. |
| Lo stesso lavoro: 5,000 stringhe in 10 lingue | $39 al mese Team, traduzione inclusa | $1,049 al mese Advanced (billed yearly) | $138 al mese Pro with 560K hosted words (billed monthly), con IA aggiuntiva |
| GitHub, GitLab, Bitbucket, Azure Repos, una CLI e un server MCP | Tutti Le app Git sono disponibili dal piano Team e coprono le edizioni cloud. | Tutti Le integrazioni sono incluse in ogni piano. | Tutti Include anche Bitbucket Server. |
- Viene merged una nuova stringa
- Tradotto per impostazione predefinitaL’invio avvia l’esecuzione. Un’impostazione del progetto la disattiva.
- Una traduzione non supera un controllo
- Riparato una volta, poi rifiutatoPer un segnaposto danneggiato, una forma plurale o un termine vietato, su ogni riga di ogni esecuzione. Viene registrato un superamento della lunghezza. In un progetto ICU, una riga danneggiata rimane esclusa dal pull, dai connettori e dalla CDN.
- Una persona ha già modificato la riga
- L’esecuzione si rifiuta di scriverlaLo stesso vale per una corrispondenza nella memoria di traduzione e per un push. Se la sorgente cambia in seguito, l’esecuzione segnala la riga.
- Pull request in un repository ad alta attività
- Un branch, una pull requestAggiornato sul posto a ogni push.
- Cosa conteggia il piano
- Parole tradotte, una volta per linguaLe corrispondenze esatte nella memoria di traduzione non hanno costo. L’archiviazione di una stringa non ha costo.
- Ciò che copre i costi dell'IA
- Le parole del pianoNon viene fatturato separatamente.
- Lo stesso lavoro: 5,000 stringhe in 10 lingue
- $39 al meseTeam, traduzione inclusa
- GitHub, GitLab, Bitbucket, Azure Repos, una CLI e un server MCP
- TuttiLe app Git sono disponibili dal piano Team e coprono le edizioni cloud.
- Viene merged una nuova stringa
- Tradotto una volta configuratoLe automazioni sono disattivate per impostazione predefinita alla creazione delle chiavi e all’importazione dei file. Un flusso di lavoro con un passaggio AI viene eseguito in base alla sua pianificazione.
- Una traduzione non supera un controllo
- Un controllo di livello Errore blocca il salvataggio nell’editorOgni controllo è impostato su Disattivato, Avviso o Errore.
- Una persona ha già modificato la riga
- Le automazioni compilano i valori vuoti per impostazione predefinitaUn’opzione di forzatura e un’azione di cancellazione sovrascrivono quelli compilati.
- Pull request in un repository ad alta attività
- Un nuovo branch per ogni pull requestDenominato con un timestamp.
- Cosa conteggia il piano
- Parole elaborateLa lingua di base e quella di destinazione vengono entrambe conteggiate.
- Ciò che copre i costi dell'IA
- Quote di parole IA per pianoLe parole per Standard AI e Pro AI costituiscono voci separate nel piano.
- Lo stesso lavoro: 5,000 stringhe in 10 lingue
- $1,049 al meseAdvanced (billed yearly)
- GitHub, GitLab, Bitbucket, Azure Repos, una CLI e un server MCP
- TuttiLe integrazioni sono incluse in ogni piano.
- Viene merged una nuova stringa
- Tradotto una volta attivatoIn Impostazioni, Traduzione automatica, viene eseguito a ogni caricamento. La sincronizzazione Git viene eseguita ogni ora per impostazione predefinita.
- Una traduzione non supera un controllo
- Un controllo di livello Errore blocca il salvataggioOgni controllo è impostato su Avviso o Errore.
- Una persona ha già modificato la riga
- Le opzioni mantengono le righe umane e approvateÈ disponibile anche un’opzione di sostituzione totale.
- Pull request in un repository ad alta attività
- Un branch di servizio, sincronizzato ogni oraOgni ora è l’impostazione predefinita e l’intervallo può essere modificato.
- Cosa conteggia il piano
- Parole ospitateParole da tradurre, moltiplicate per le lingue di destinazione.
- Ciò che copre i costi dell'IA
- Un saldo separato o la tua chiave personaleL'IA gestita di Crowdin viene pagata tramite crediti, al di fuori dell'abbonamento.
- Lo stesso lavoro: 5,000 stringhe in 10 lingue
- $138 al mesePro with 560K hosted words (billed monthly), con IA aggiuntiva
- GitHub, GitLab, Bitbucket, Azure Repos, una CLI e un server MCP
- TuttiInclude anche Bitbucket Server.
Avvialo da dove risiedono le tue stringhe. Ogni porta conduce alla stessa pipeline.
Come configurare la localizzazione continua
- 01
Estrai le stringhe dal codice
Ogni stringa visibile all’utente necessita di una chiave stabile in un file di localizzazione. Transglot legge 20 formati, quindi puoi mantenere quello che hai già.
jsonyamlxliffarb - 02
Collega il repository
Il comando init individua i tuoi file di localizzazione, ti fa accedere tramite browser, carica ciò che hai già e avvia la prima traduzione.
npx transglot@latest init - 03
Eseguilo a ogni merge
Aggiungi l’azione GitHub, richiama la CLI da qualsiasi altra CI o installa l’app per GitHub, GitLab, Bitbucket o Azure Repos.
transglot push --wait - 04
Decidi cosa richiede un intervento umano
Imposta min_state su reviewed in una regola di pull request: quel file includerà solo stringhe revisionate da una persona. Se non lo imposti, le bozze verranno pubblicate.
min_state: reviewed
Quanto costa eseguirlo a ogni merge: le parole modificate.
Una parola è una parola nella lingua sorgente, conteggiata una volta per ogni lingua di destinazione. Un’esecuzione viene dimensionata in base alle modifiche: un merge che tocca dodici parole in cinque lingue ne conta sessanta, indipendentemente dalle dimensioni del progetto.
Rientra in Starter: $19/mo, 300,000 parole al mese.
Corrisponde a circa il 9% della quota.
Questo conteggio riguarda solo la traduzione. I controlli di qualità, le bozze per il tono del brand e le correzioni contano anch’essi come parole, mentre le corrispondenze esatte dalla memoria non hanno costo. La CLI e l’azione GitHub iniziano dal piano Starter, mentre le app per GitHub, GitLab, Bitbucket e Azure Repos iniziano dal piano Team.
Tre problemi che la localizzazione continua non risolve
Stringhe ancora incorporate nel codice
Una pipeline può tradurre solo ciò che riesce a leggere. Le stringhe hardcoded e le frasi costruite assemblando parti devono essere sistemate prima, e sono la causa più comune del blocco di un rollout.
Nessuno possiede le parole
L'automazione sposta le stringhe, ma non decide come il tuo prodotto chiama le cose. Qualcuno deve gestire il glossario, altrimenti una lingua che nessuno legge deriva senza che nessuno se ne accorga.
Testi che richiedono giudizio
I testi legali, i prezzi e gli slogan del brand meritano l'intervento di una persona. Inviali per la revisione e tienili fuori dai file di rilascio finché qualcuno non li approva.
FAQ sulla localizzazione continua
Le domande che i team si pongono prima di attivarla.
Cos'è la localizzazione continua?
In che cosa differisce la localizzazione continua da quella tradizionale?
La localizzazione continua è uguale alla CI/CD?
Ho bisogno di una pipeline CI/CD per la localizzazione continua?
La localizzazione continua significa nessuna revisione umana?
Un'esecuzione automatica può sovrascrivere la modifica di un traduttore?
La localizzazione continua vale la pena per un piccolo team?
Come posso evitare che un'esecuzione costi più del previsto?
Funziona con GitLab, Bitbucket e Azure DevOps?
Posso fare localizzazione continua senza Git?
Le traduzioni possono aggiornarsi senza un rilascio?
Come posso migrare un progetto esistente?
41 connettori, già pronti.
Collega un repository. Il prossimo merge fa il resto.
Un comando individua i tuoi file di localizzazione, ti autentica tramite il browser ed esegue la prima traduzione.