Come localizzare la tua applicazione in molte lingue

XCode

Uno dei punti che anche Apple consiglia di concentrarsi per avere un’applicazione di successo è quello di renderla localizzata in molte lingue.

Per questo ha anche creato una guida apposita. Ecco quindi una semplice guida su come localizzare la vostra applicazione.

La prima cosa da fare è creare un nuovo file all’interno del progetto. Tramite il pannello di creazione dei file: Menu File -> New File -> Resources -> Strings File. Diamogli il nome “Localizable.strings”.

Questo file serve appositamente per localizzare le stringhe.

Nel progetto quindi, quando dovete inserire una stringa, usate la funzione: NSLocalizedString().
Per rendere le cose semplici ho creato una UILabel chiamata “label”.

self.label.text = NSLocalizedString(@"Questo testo è localizzato", @"Commento su questa stringa");

La funzione accetta due parametri, la stringa da localizzare e un commento alla stringa. Il primo parametro è obbligatorio mentre nel secondo possiamo può passare anche nil. E’ comunque consigliato utilizzare questo parametro per inserire un commento utile a chi poi andrà a localizzare il testo.

Adesso quindi andiamo ad inserire questi dati nel file di stringhe precedentemente creato. Apriamo il file Localizable.strings e scriviamo:

/* Commento su questa stringa */
"Questo testo è localizzato" = "This text is localized in english";

Come vedete, a destra c’è  il testo da localizzare, a sinistra c’è il testo localizzato. E’ importante mantenere la sintassi corretta altrimenti il file non sarà correttamente utilizzato.

Adesso, se lanciamo l’app, vedremo nella nostra label il testo “This text is localized in english”.

Traduciamo quindi le nostre stringhe nella lingua Italiana.
Selezioniamo il file “Localizable.strings” nel progetto e apriamo il pannello dell’inspector. Nel tab “File” c’è una sezione “Localization” e un pulsante “Localize”. Premetelo, il sistema vi chiederà in che lingua base è il file, selezionate English.

Rendi il file localizzato con l'Inspector

Adesso selezionate il progetto dalla lista dei files e selezionate ancora il progetto (non il target).
Nel pannello centrale ci sono varie sezioni, tra cui “Localizations”, da qui potete inserire tutte le lingue che desiderate. Premete quindi + ed aggiungete l’italiano. Dal pannello che compare, selezionate solamente il file “Localizable.strings” perché per adesso vogliamo localizzare solamente questo file.

Pannello Localizations Seleziona solamente il file Localizable.strings

Perfetto, adesso noterete che il file “Localizable.strings” ha una freccetta di lato.

Adesso il file ha la linguetta per aprire le lingue

Se la cliccate si espanderà mostrando le varie lingue. Selezionate quindi il file in lingua desiderata e traducete la frase:

/* Commento su questa stringa */
"Questo testo è localizzato" = "Questo file è tradotto in italiano";

Pronti, la vostra applicazione è tradotta in Italiano e in Inglese.

Curiosità – Localizzare altri files

E’ possibile, con lo stesso metodo, localizzare anche i file Storyboard e Xib. In questo modo potrete avere direttamente i file dell’interfaccia grafica localizzata.

Nel caso in cui la UI sia complessa, consiglio di utilizzare sempre le stringhe ed avere un file XIB/Storyboard unico.

Scritto il