Dove sono le traduzioni?
Dopo aver spiegato che gran parte del mondo non parla inglese e aver poi illustrato come contribuire alla distribuzione Fedora, vediamo dove si trovano le traduzioni di un software.
Le traduzioni sono parte integrante del codice
Le traduzioni sono file che costituiscono parte integrante del codice
sorgente necessario all’esecuzione del programma. Il formato del file
contenente le traduzioni varia a seconda degli strumenti utilizzati dal team
di sviluppo. Per farsi un’idea dei principali formati di file, è utile
consultare l’elenco dei formati supportati dalla piattaforma di traduzione
Weblate. In generale, il
formato Gettext è il più utilizzato per i software compilati/da desktop,
mentre i formati Json sono preferiti per i software web. Ogni file presenta
vantaggi e svantaggi, che rientrano nell’ambito dell’internazionalizzazione
del software, spesso abbreviata in i18n.
Le ripercussioni sul lavoro di traduzione
Poiché le traduzioni fanno parte del codice sorgente, i traduttori devono consegnare il proprio lavoro nei tempi previsti affinché ogni modifica apportata alla versione corrente venga tradotta. Anche la più piccola modifica, che si tratti di una sola lettera o di un solo carattere, richiede che ogni traduzione venga ricontrollata per verificare se la modifica influisca sul significato o sulla struttura della frase; tali modifiche comportano un notevole dispendio di tempo per i traduttori.
Molto spesso, ed è normale, gli sviluppatori e le sviluppatrici non sanno come adattare le traduzioni quando apportano delle modifiche. È quindi necessario che i traduttori e le traduttrici seguano da vicino lo sviluppo del progetto per poter reagire tempestivamente ed evitare che la nuova versione del progetto arrivi agli utenti con una stringa in inglese visualizzata nel mezzo di un software già parzialmente tradotto.
È qui che le cose si complicano: i progetti di software libero sono almeno migliaia, se non centinaia di migliaia. Le lingue sono migliaia: è possibile disporre di un numero sufficiente di traduttori e traduttrici in ogni lingua per seguire tutti questi progetti? Certamente no.
Processo di integrazione delle traduzioni
Prendiamo ora in esame alcuni esempi di progetto per vedere come si articola l’interazione tra i processi di sviluppo del software e di traduzione.
Traducibile… ma antiquato!
Jitsi Meet è un software di videoconferenza online; nel suo codice sorgente, la cartella lang contiene un file json per ogni lingua.
Ogni traduzione deve fungere da richiesta di integrazione: è un processo complesso e che richiede molto tempo.
In pochi minuti trovo un caso estremo, questa richiesta in sospeso da oltre 8 mesi. Nel frattempo, però, il file contenente le stringhe da tradurre del software è già stato modificato 19 volte e sono state pubblicate 8 versioni!
Nel readme non ci sono informazioni su come tradurre, né nella guida per i contributori.
Le comunità linguistiche più numerose potrebbero riuscire a dedicare il tempo necessario grazie al numero di collaboratori (e anche in quel caso…), mentre tutte le altre verranno trascurate e il software proporrà traduzioni aggiornate solo per le lingue già sovrarappresentate. Per seguire gli aggiornamenti, è probabilmente necessario iscriversi ai feed di GitHub del progetto.
Ci si potrebbe interrogare sull’efficacia di questo modo di lavorare: sebbene sia lodevole lo sforzo di consentire la traduzione del software, mi rammarico della scarsa considerazione riservata a questo tipo di contributo. Non ho avviato alcuna discussione con i team di Jitsi Meet; non è sempre stato così, in passato è già stata utilizzata una piattaforma di traduzione.
Chiaro… ma molto specifico per GNOME
Il progetto GNOME utilizza una versione simile, ma incentrata sulle esigenze dei team di traduzione. Per inviare una traduzione al software finale, è obbligatorio utilizzare Git. Tuttavia, è disponibile uno strumento per i traduttori e le traduttrici, che consente loro di sapere esattamente cosa deve essere tradotto e di collaborare. Inoltre, una lunga lista di software dell’ecosistema GNOME segue lo stesso ritmo di rilascio delle nuove versioni e gli stessi processi di lavoro. Il processo è quindi imperfetto e manuale, ma gli strumenti consentono di ridurre notevolmente i costi di gestione per i collaboratori e le collaboratrici.
Efficace… ma molto specifico per Mozilla
Il progetto Mozilla considera la traduzione un aspetto fondamentale della propria attività; se desiderate contribuire, potete visitare la piattaforma di traduzione Pontoon (il progetto è organizzato in team di traduzione).
Capire cosa è traducibile è facile, e trovare persone di riferimento a cui rivolgere le proprie domande lo è altrettanto.
Si tratta di un progetto enorme; potreste avere qualche difficoltà a comprendere le fasi che intercorrono tra la piattaforma di traduzione e il rilascio delle versioni del software, ma che importanza ha? Funziona bene, le date di rilascio sono note e le priorità sono state definite. Ci vorrà un po’ di tempo per mettere in piedi un team e definire i processi di revisione; tutti gli strumenti sono specifici per i progetti Mozilla, ma nel complesso il sistema è piuttosto efficiente.
Automatizzata e generica, la modernità emancipatoria
È possibile fornire uno strumento dedicato alle attività di traduzione che consenta di ricevere notifiche in caso di modifiche, di lavorare in team e di individuare eventuali anomalie.
E, ciliegina sulla torta, la sincronizzazione automatica con il codice sorgente del software.
Un ottimo esempio: la piattaforma di traduzione Weblate mostra la strada da seguire: tutto è interconnesso e automatizzato. Le modifiche alle traduzioni sono numerose e le modifiche che influiscono sulle traduzioni sono facili da individuare.
Molti progetti utilizzano Weblate: è la scelta giusta, qualunque sia il vostro contesto. Nell’ecosistema delle piattaforme di traduzione, Weblate è diventato uno strumento imprescindibile ed efficiente quanto Git per la gestione del codice sorgente nello sviluppo software.
Se il vostro progetto offre questa piattaforma, fornite così gli strumenti necessari per i contributi linguistici e, curando il rapporto con questa vasta comunità, avrete buone possibilità di ottenere uno strumento tradotto in numerose lingue.
Conclusione
Il collegamento tra gli aspetti tecnici del progetto e le traduzioni è fondamentale per l’efficacia dei processi di traduzione.
Esistono strumenti ricchi di funzioni interessanti e di automatizzazioni pensati per semplificare la vita a tutti.
Spetta ai team di sviluppo farsi carico di questo compito affinché i software contengano sempre più traduzioni e venga supportato un numero crescente di lingue.
Ma cosa succede quando un progetto non rilascia nuove versioni? Come si può ovviare alla situazione di un progetto inattivo? Questo sarà l’argomento di un prossimo articolo.