Localizzare e tradurre un’app in più lingue
Apple • Lavoro • Programmazione • Tutorial
In un mondo globalizzato come è quello di oggi, rendere la propria applicazione disponibile a chiunque è dato per scontato.
Per farlo però è necessario tradurre tutti i testi, si quelli dell’app che il sito web e la parte di comunicazione nei social network.
Ma anche tutte le immagini che contengono dei testi devono essere riviste.
Quando entriamo nel mondo della traduzione ci scontriamo subito con una parola “localizzazione”.
In questo ambito, questa parola significa “adattare il contenuto sia alla lingua che alla cultura” del paese al quale vogliamo accedere.
L’esempio più banale è quello delle date. Se in Italia scriviamo “25 Marzo 2022”, negli Stati Uniti scrivono “March 25, 2022”. Notare che non solo ho tradotto il mese “Marzo in March” ma ho anche scambiato il mese con il numero del giorno ed aggiunto una virgola dopo il giorno del mese.
Se volete un altro esempio, prendiamo le cifre delle monete. In Italia scriviamo “1.000 €”, negli Stati Uniti scrivono “$1,000”. La divisione delle migliaia avviene con la virgola (,) e il simbolo precede la quantità.
Questi sono solo 2 delle tantissime differenze che esistono tra sole 2 lingue, pensate con tutte le altre!
Il processo di localizzazione in un’app iOS
Su iOS possiamo gestire tutte le localizzazioni e le traduzioni che vogliamo, Apple ci mette a disposizione tutti gli strumenti necessari per poterlo fare in autonomia.
Ovviamente è necessario conoscere la lingua e in mancanza di questa capacità possiamo inviare i file da tradurre a i vari traduttori.
Ma vediamo come funziona la localizzazione su Xcode, l’IDE per lo sviluppo di app iOS, macOS e per tutte le piattaforme Apple.
Prima di tutto dobbiamo definire la nuova lingua da supportare. Per farlo dobbiamo selezionare il progetto nel pannello di informazioni ed individuare l’area adibita alla gestione delle lingue.
Una volta aggiunta, dobbiamo creare il file di “stringhe localizzate” chiamato “Localizable.strings”.
Questo file serve a gestire tutte le stringhe localizzate, cioè i testi da tradurre e localizzare.
Una volta creato, si presenterà così:
Adesso siamo in grado di inserire al suo interno i nostri testi.
Il formato è:"identificativo" = "Testo";
Ogni stringa (testo da tradurre) sarà una riga con questo formato.
Attenzione a non sbagliare il formato altrimenti non compilerà il progetto.
Per comodità e prassi, si utilizzano identificativi con il formato “sezione.sottosezione.contesto”.
Questo formato, con una sezione, una sottosezione e un contenuto, separato da un punto, è molto utile per suddividere i testi in modo schematico e comprendere il loro significato ed utilizzo.
A questo punto possiamo utilizzare la nostra stringa nel codice:
Nella nostra Label (Text) ho inserito direttamente l’identificativo che viene automaticamente convertito nel testo tradotto.
Adesso però dobbiamo rendere il nostro file Localizable.strings “localizzato” per poter aggiungere le traduzioni.
Selezioniamo il file ed apriamo il pannello di informazioni sulla destra. Selezioniamo poi il pulsante “Localize” ed aggiungiamo la lingua desiderata.
Scegliamo la lingua principale da tradurre e premiamo su Localize.
Adesso avremo lo stesso file Localizable.strings per ogni lingua supportata e possiamo andare a modificarne il contenuto.
Ci basterà aggiornare la parte del testo (l’identificativo deve rimanere il medesimo).
Questo processo di gestione delle lingue localizzate è efficace ma abbastanza primitivo.
Con il tempo e l’aumento delle stringhe da gestire è molto probabile che qualcosa possa andare perso o dimenticato.
Per gestire meglio tutte le stringhe e le localizzazioni è possibile utilizzare applicazioni esterne che ci permettono di avere una panoramica completa.
Una di queste è LocalizApp, una semplice ma utilissima app con tante utili funzionalità.
Il suo uso è semplicissimo, basta aprire il progetto Xcode con LocalizApp e subito abbiamo la panoramica completa.
Tappando sulla stringa da tradurre si apre il pannello di editing che ci permette di scrivere le traduzioni avendo anche chiaro il contesto e il testo originale.
Ma non solo, è possibile far tradurre in automatico tramite Google Translate o DeepL, la stringa appena scelta.
Ma quest’app può fare molto di più.
Ad esempio è possibile tradurre tutta una lingua tramite Google Translate o DeepL con un solo click.
Questa funzionalità è davvero utile quando si deve aggiungere velocemente una lingua ed avere un’idea di come può essere il risultato finale, ad esempio vedere quanto lunghi possono essere i testi che in base alla lingua variano molto.
Un’altra funzionalità utilissima è il pulsante “Show Missing” che ci permette di vedere subito se c’è qualche stringa dimenticata.
LocalizApp è un’app davvero utile per tutti gli sviluppatori che vogliono gestire le stringhe localizzate ma che non vogliono perdersi nei file di stringhe.
Può essere scaricata da qui: https://apps.apple.com/us/app/localizapp/id6443473845
Spero che questa piccola guida possa esservi stata utile.
Se volete altre informazioni potete scrivermi anche su Twitter: https://twitter.com/dimix