La localizzazione continua consente agli sviluppatori di software di localizzare i propri contenuti senza ostacolare il processo di sviluppo. Ecco come Xsolla ha raggiunto questo obiettivo con l'aiuto di strumenti disponibili gratuitamente.
Sfida
L'avvento delle pratiche di sviluppo agile e degli strumenti basati sul web ha aggiunto ulteriori sfide alle relazioni tra sviluppatori e localizzatori. Se in precedenza i nuovi contenuti venivano pubblicati ogni pochi mesi, ora i cicli di rilascio possono essere brevi anche solo poche settimane. Ogni nuova versione contiene nuovi contenuti, che devono essere localizzati in pochi giorni. Prendiamo ad esempio Xsolla, un distributore e editore globale di videogiochi che fornisce agli sviluppatori strumenti per migliorare il potenziale di diffusione dei loro giochi. L'azienda ha 8 prodotti chiave, un ciclo di rilascio di 2 settimane e da 6 a 21 lingue in cui localizzare ogni prodotto.
L'azienda ha storicamente utilizzato varie piattaforme di traduzione online per svolgere il lavoro, ma sotto molti aspetti non era soddisfatta. "La localizzazione di alcune nuove stringhe in 20 lingue richiedeva più tempo per la gestione del progetto che per la traduzione", afferma Natalya Pavlikova, ingegnere di localizzazione presso Xsolla. Per questo motivo, Xsolla ha iniziato a cercare una soluzione alternativa.
Natalya Pavlikova, ingegnere di localizzazione presso Xsolla
Criteri
Xsolla desiderava che la nuova piattaforma:
Acquisisse automaticamente i contenuti localizzabili dal repository di codice dell'azienda,
Consentisse un processo di localizzazione trasparente e flessibile e
Rinviasse i contenuti localizzati al repository di codice.
La soluzione è arrivata con un pacchetto di due strumenti gratuiti, Serge e Smartcat. Serge — il motore di estrazione stringhe e generazione risorse — è uno strumento autonomo che consente la localizzazione continua (vedi callout). Raccoglie automaticamente nuovo materiale di partenza, lo pubblica per la traduzione, acquisisce le traduzioni completate e le integra nuovamente nel prodotto. Serge è un progetto open source gestito da Evernote. Smartcat, a sua volta, è una piattaforma di traduzione dove è possibile conservare progetti e memorie di traduzione, trovare traduttori, assegnarli ai documenti e pagare il loro lavoro.
Localizzazione continua: quando è necessaria?
La localizzazione continua funziona al meglio in scenari in cui si dispone di molti contenuti costantemente aggiornati e/o in cui diversi team gestiscono lo sviluppo e la localizzazione. Alcuni esempi includono:
Localizzazione di software e videogiochi, in cui ogni versione presenta nuove stringhe.
Guide utente e specifiche API, comprese quelle generate automaticamente.
Siti web e blog creati utilizzando generatori di siti statici.
Qualsiasi progetto in cui la creazione di contenuti si inserisce in un framework agile.
In generale, ogni volta che si memorizzano stringhe localizzabili in un sistema di controllo delle versioni, la localizzazione continua sarà l'approccio più efficiente. (E se non lo fate, è una buona idea prendere in considerazione questa possibilità). L'utilizzo di un processo unificato e automatizzato per la localizzazione delle stringhe elimina gli errori umani e fa risparmiare una notevole quantità di tempo ai vostri dipendenti, liberandolo per attività più importanti e creative.
Soluzione
Nel caso di Xsolla, il flusso di lavoro di localizzazione continua è il seguente:
Gli sviluppatori di Xsolla aggiornano i file di progetto in un repository Git.
Serge monitora costantemente il repository in tempo reale e, quando necessario, estrae le stringhe dagli aggiornamenti, crea file di risorse PO con esse e li invia a Smartcat.
Il responsabile della localizzazione di Xsolla distribuisce le stringhe non tradotte ai freelance del suo team.
I freelance traducono i documenti e li contrassegnano come completati.
Serge prende le stringhe localizzate, le reinserisce nei file sorgente e le invia al repository Git di Xsolla.
Gli sviluppatori di Xsolla pubblicano la versione insieme alla localizzazione.
Perché Serge?
Smartcat supporta diversi formati di file. Quindi perché utilizzare Serge come proxy tra i file di risorse originali e un servizio di traduzione?
"A prima vista, Serge potrebbe sembrare un convertitore di formati di file. Ma non è così", afferma Igor Afanasyev, direttore della localizzazione presso Evernote e ideatore di Serge. "Serge è una pipeline flessibile per l'elaborazione e la sincronizzazione dei file che può essere configurata per soddisfare diversi flussi di lavoro di localizzazione, consentendo un'integrazione davvero continua. Serge garantisce che i file di risorse localizzati abbiano la stessa struttura di quelli di origine e gestisce i casi in cui i file di origine cambiano mentre le loro versioni precedenti sono ancora in fase di traduzione. Ciò evita agli ingegneri di dover unire le modifiche e sblocca il ciclo di sviluppo. In un certo senso, con Serge, gli ingegneri hanno l'impressione che non esista affatto un "processo di localizzazione". Un'altra caratteristica importante di Serge è che mantiene il proprio database di traduzioni e funziona presso la sede del cliente. Ciò significa che Smartcat non ha bisogno di accedere ai repository Git privati di Xsolla e che i file di traduzione che Smartcat ottiene da Serge sono file di risorse rettificati che non contengono informazioni sensibili. Infine, poiché Serge funziona in modo continuo sul server di Xsolla, le risorse localizzate vengono aggiornate in pochi minuti. Ciò garantisce che i file localizzati siano sempre aggiornati e che le build non falliscano a causa di risorse obsolete.
Igor Afanasyev, Direttore della localizzazione presso Evernote
Risultati
Il risultato principale del passaggio alla localizzazione continua è che i project manager possono concentrarsi sul proprio lavoro, mentre gli sviluppatori possono concentrarsi sul loro. Ciò consente di risparmiare molto lavoro di gestione del progetto e nessuno deve occuparsi dell'invio dei file e della conversione dei formati: questo è compito di Serge.
"Ora possiamo gestire le nostre stringhe proprio come gestiamo il nostro codice", afferma Maxim Kungurtsev, sviluppatore front-end di Xsolla. "Possiamo creare nuovi rami, unirli, ripristinarli e allo stesso tempo essere certi che il pacchetto Serge-Smartcat svolga tutto il lavoro in background per localizzare le stringhe di quel ramo specifico nel nostro repository. Funziona a meraviglia!" Non meno importante, le funzionalità di team management di Smartcat rendono più facile garantire la qualità dei contenuti localizzati. "Abbiamo già un team affiatato di traduttori su Smartcat che garantisce la coerenza del nostro messaggio", afferma Natalya. "E per i contenuti più critici, possiamo aggiungere altri linguisti come revisori per lo stesso contenuto".
Maxim Kungurtsev, sviluppatore front-end presso Xsolla
Piani futuri
Questo è stato il primo progetto di localizzazione continua per Smartcat con Serge, e il team lavora a stretto contatto sia con Xsolla che con Igor Afanasyev. Ci sono ancora molte cose che Xsolla attende con impazienza per il futuro, come ad esempio:
Assegnazione dei traduttori con un solo clic,
Supporto delle etichette pluralizzabili,
Assegnazione di editori per i testi di partenza,
Notifiche più flessibili.
Ma Smartcat è ottimista. "Lavoreremo sodo per implementare le richieste di funzionalità di Xsolla", afferma Pavel Doronin, product manager di Smartcat. "Non solo perché sono uno dei clienti più redditizi, ma anche per fornire agli altri nostri utenti flussi di lavoro migliori per la localizzazione continua, che siamo certi è destinata a durare". In futuro, prevediamo di fornire ancora più opzioni per la localizzazione continua con Smartcat, inclusi scenari nativi e integrazioni esterne che sottolineano il nostro approccio ecosistemico alla crescita. Alla fine dei conti, ciò che conta è ciò che piace di più ai nostri utenti, ed è su questo che ci concentreremo.
Pavel Doronin, Product Manager presso Smartcat
Link utili
Se desideri configurare un flusso di lavoro di localizzazione continuo simile a quello di Xsolla, dovrai:
Scaricare e installare Serge.
Registrarti su Smartcat.
Installa il plugin Serge Smartcat.



