Tutorial
Pubblicare in più lingue in 5 passi

Dalla lingua di origine all’audio delle voci, una guida completa per pubblicare una graphic novel in più lingue con PanelWave: dichiara le lingue, estrai e traduci il testo, scambia file con i traduttori, localizza illustrazioni e audio, e controlla ogni lingua prima di pubblicare.
Una graphic novel disegnata una volta dovrebbe potersi leggere in ogni lingua parlata dal suo pubblico, senza rifare il lettering delle tavole né mantenere cinque copie dell’opera. PanelWave è fatto per questo: ogni testo di un’opera destinato ai lettori viene salvato lingua per lingua, gli asset possono avere versioni per lingua e il player cambia lingua al volo, senza ricaricare. In cinque passi, questa guida porta un’opera finita dalla lingua di origine a una seconda lingua, con balloon tradotti, illustrazioni localizzate e dialoghi doppiati. Ogni passo rimanda alla pagina corrispondente della documentazione.
Il tutto poggia su un unico modello condiviso da formato, player e CMS: il testo è una LocalizedString indicizzata per locale BCP-47, e una catena di fallback garantisce che un lettore non veda mai uno spazio vuoto dove manca una traduzione. Il concetto di localizzazione spiega questo modello in una pagina; non devi leggerlo prima, ma aiuta sapere che c’è.
Passo 1: dichiara le lingue
Le lingue fanno parte dell’opera fin dall’inizio, non si aggiungono a posteriori. Quando crei un’opera, la procedura guidata chiede una lingua predefinita ed eventuali lingue aggiuntive; l’elenco è raggruppato per regione e si può cercare. La lingua predefinita è l’origine da cui si traduce tutto il resto e l’ultimo ripiego. Puoi modificarle in seguito nella scheda Localization di Work Properties o con il pulsante Locales nel laboratorio: aggiungi una lingua tramite il suo codice, indica un’altra lingua come predefinita, oppure rimuovine una conservandone le traduzioni per dopo (Locales and fallbacks).
Accanto all’elenco delle lingue ci sono due impostazioni. La direzione di lettura decide se l’opera si legge da sinistra a destra o da destra a sinistra, cosa che conta non appena aggiungi il giapponese o l’arabo. E la preferenza del profilo per la lingua di modifica predefinita preseleziona la lingua di destinazione quando apri il laboratorio (Account). Nel manifest tutto questo diventa due campi in meta, locales e default_locale, documentati in Meta.
Passo 2: estrai il testo e traducilo
Apri Localization dalla barra laterale del Backstage e clicca Extract Strings. Il laboratorio analizza l’opera e raccoglie ogni stringa traducibile in una tabella: testo dei balloon, titoli e descrizioni delle vignette, etichette degli hotspot e altri contenuti rivolti ai lettori. Ogni riga riceve una chiave stabile, il testo di origine, una categoria e un badge Used in che ti dice dove compare. Ripeti l’estrazione ogni volta che aggiungi contenuti; le traduzioni esistenti vengono conservate e le nuove stringhe si aggiungono in coda (Extracting translatable text).
Poi scegli la lingua di destinazione tra le etichette sotto l’intestazione (ognuna mostra a che punto è la traduzione) e traduci. Clicca su una cella per modificarla direttamente; le righe non tradotte sono evidenziate e le schede statistiche contano le stringhe totali, tradotte e mancanti. Una traduzione mancante mostra esattamente che cosa vedrebbe il lettore al suo posto, cioè il testo di ripiego nella tua lingua predefinita (The translation editor).
Per un primo passaggio, Translate untranslated traduce automaticamente in una volta sola tutte le stringhe mancanti della lingua. Le traduzioni automatiche portano un badge MT finché non le confermi con la spunta verde o le modifichi. Due strumenti mantengono coerente un’opera lunga: la memoria di traduzione suggerisce corrispondenze esatte e approssimative da tutto ciò che hai già tradotto, e un glossario per opera fissa le traduzioni preferite dei termini chiave e segnala le righe che le ignorano (Machine translation, Translation memory, Glossary).
Quando in seguito modifichi una battuta di origine, le sue traduzioni vengono segnalate come obsolete invece di restare silenziosamente indietro. Il filtro Needs review le raccoglie tutte (Stale translation detection).
Passo 3: lavora con un traduttore
La traduzione automatica è una bozza, non la versione finale. Per la traduzione vera e propria, consegna le stringhe a un traduttore nel formato che usa già: il menu Export produce CSV per chi lavora con i fogli di calcolo, XLIFF 1.2 per gli strumenti CAT, oppure una semplice mappa JSON chiave-valore. Il traduttore lavora con il proprio strumento, e Import riporta il file nel laboratorio, dove le righe finiscono al posto giusto grazie alla chiave (Working with external translators).
Vale la pena esportare anche il glossario insieme alle stringhe, perché contiene note per i traduttori oltre ai termini preferiti. E poiché il laboratorio conserva con ogni stringa il testo di origine e il contesto Used in, chi riceve l’XLIFF vede che cos’è una battuta e dove compare, non solo una frase isolata.
Passo 4: localizza illustrazioni e audio
Alcuni contenuti si localizzano più facilmente come file che come stringa: un cartiglio con il titolo scritto a mano, un effetto sonoro disegnato nell’illustrazione, un cartello stradale. PanelWave localizza la variante dell’asset, non il riferimento. Un asset può avere versioni per lingua, e la libreria degli asset filtra per lingua così puoi gestirle fianco a fianco. Il player sceglie poi la variante per la lingua del lettore con la stessa logica di fallback del testo, e i livelli della vignetta non cambiano mai (Localized assets).
Le battute parlate funzionano allo stesso modo. La voce Audio nella barra laterale del Backstage apre Audio Localization, che elenca ogni balloon per lingua, con schede statistiche per i balloon con e senza audio. Per ogni balloon puoi caricare una registrazione di un doppiatore o generare una sintesi vocale: scegli una voce dal catalogo, con genere, età, stile e un campione di ascolto, e la generazione avviene in background. Se a un personaggio è assegnata una voce, quella voce è la scelta naturale per le sue battute (Assigning a voice). Le tracce generate si possono ascoltare, sostituire o tagliare in modo non distruttivo nella vista della forma d’onda (Audio Localization and text-to-speech, Localized audio).
Anche testi alternativi, didascalie e trascrizioni sono LocalizedString, quindi l’output per gli screen reader e i sottotitoli seguono la lingua del lettore come tutto il resto. Non è un passo separato: succede quando traduci le stringhe trovate dall’estrazione.
Passo 5: controlla ogni lingua, poi pubblica
Apri Preview e imposta il controllo Locale su ciascuna lingua. Premi L per passare al selettore e 1, 2, 3 per cambiare cornice del dispositivo, perché una traduzione che sta bene in una cornice desktop può affollare una vignetta su smartphone (Preview: locale). Ascolta qualche battuta generata: una voce che sembrava giusta nel catalogo può pronunciare male un nome nel contesto.
Poi esegui il controllo pre-pubblicazione (Preflight). La sua categoria Localization è dove emergono le traduzioni mancanti, accanto ai controlli di accessibilità per testi alternativi e didascalie, così nulla viene pubblicato tradotto a metà per sbaglio (Validation and Preflight). Una volta pubblicata l’opera, i lettori trovano nella barra degli strumenti del player il pulsante con il globo, che compare solo se l’opera ha più di una lingua. Il cambio è immediato: testo, balloon, asset e audio si aggiornano senza ricaricare (Player localization).
Ciò che il lettore non vede mai
La catena di fallback è l’eroe silenzioso di tutto questo. Quando una stringa viene richiesta in una lingua che non ce l’ha, il player prova una corrispondenza esatta, poi qualsiasi voce nella stessa lingua di base, poi la lingua predefinita dell’opera, poi la sua lingua di base e infine la prima voce disponibile. Un lettore in inglese britannico riceve il tuo testo in inglese americano, e un’opera tradotta all’ottanta per cento si legge comunque come un’opera completa, con le parti non ancora tradotte nella lingua predefinita, mai come una pagina di spazi vuoti. L’ordine esatto è in The fallback chain. È anche il motivo per cui puoi pubblicare una seconda lingua un po’ alla volta: pubblica i capitoli che hai, continua a tradurre e ripubblica.
Per approfondire
- Localization concept: LocalizedString, locale BCP-47, catene di fallback, varianti localizzate degli asset.
- CMS Localization: il laboratorio, la traduzione automatica, la memoria, il glossario, lo scambio con i traduttori, l’audio.
- Player localization: risoluzione a runtime, cambio di lingua e la lingua separata dell’interfaccia.
- Assets in the format: dove si trova nel manifest la lingua di una variante.

