• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#091 – Localizzare le proprie applicazioni iOS e Mac OS X con Localizable Strings Merge

By Redazione | on 7 Aprile 2011 | 5 Comments
Senza categoria

Localizable-Strings-Merge-mac-app-store-devAPP-00 Per disporre del più ampio bacino di utenti possibile, e quindi per amplificare i profitti, tutti gli sviluppatori iPhone, iPad e Mac OS dovrebbero porsi il problema di localizzare in più lingue le proprie applicazioni. Gli utenti, infatti, difficilmente comprano e usano un’applicazione la cui interfaccia utente è scritta in una lingua che non comprendono.

La procedura standard per internazionalizzare un’applicazione si basa sul tool a linea di comando “genstrings” che analizza i file sorgente alla ricerca della macro “NSLocalizedString” e genera i file “Localizable.strings” che conterranno tutte le stringhe da tradurre. Questa procedura semplifica la creazione dei file per le traduzioni, ma ha alcune pesanti limitazioni; vediamo quali, e soprattutto analizziamo un’utility chiamata Localizable Strings Merge che ci farà letteralmente risparmiare ore di lavoro.


t091-Localizzare-applicazioni-iphone-ipad-macos-Localizable-Strings-Merge-01

I limiti di genstrings

Genstrings è un tool a linea di comando: se per molti sviluppatori questo non rappresenta certo un problema, è sicuramente meno intuitivo e gradevole di un’applicazione dotata di un’interfaccia grafica semplice e elegante.

Ma il vero problema di genstrings è il fatto che non è in grado di fare il merge delle stringhe. Vediamo meglio che cosa significa e cosa implica.

Per internazionalizzare e localizzare un’applicazione iOS o Mac OS X normalmente si segue questo processo:


t091-Localizzare-applicazioni-iphone-ipad-macos-Localizable-Strings-Merge-02

Il processo di traduzione spesso richiede diversi giorni, per questo tipicamente si procede in parallelo con la conclusione dello sviluppo e i relativi test. Come possiamo immaginare, durante questa fase è abbastanza comune che vengano raffinate alcune stringhe o che ne vengano aggiunte altre. Al termine diventa dunque necessaria un’operazione di merge dei termini tradotti e di quelli introdotti nel frattempo, un’operazione che anche nei casi più semplici, essendo da fare completamente a mano, diventa estremamente laboriosa e soggetta ad errori difficili da individuare.

Il problema del merge è particolarmente evidente nel caso di grandi team di sviluppo che si affidano ad altre società o a gruppi esterni per le traduzioni, ma accade anche in scenari molto più semplici, addirittura quando a far lo sviluppo e le traduzioni è sempre la stessa persona. Pensiamo ad esempio al caso in cui abbiamo già in vendita la versione 1.0 di un’applicazione, completa di traduzioni. Quando lavoriamo alla versione 2.0 non vogliamo doverla rifare da zero, ma giustamente ci vogliamo occupare solo delle differenze.

In questi frangenti entra in gioco Localizable Strings Merge, in vendita su Mac App Store a 2,99 € (3,99 $), un prezzo davvero contenuto considerato il tempo (e dunque i costi) che ci fa di risparmiare.

Introduzione a Localizable Strings Merge

Localizable Strings Merge sostanzialmente esegue la generazione dei file “Localizable.strings” a partire dai file sorgente (in pratica come “genstrings”, ma attraverso un’interfaccia grafica semplice ed elegante) e soprattutto il merge dei file tradotti o parzialmente tradotti.

L’interfaccia grafica è suddivisa in due sezioni: la parte sinistra è dedicata ai file sorgente dai quali “estrarre” le stringhe da tradurre, mentre la parte destra è il contenitore per i file eventualmente già tradotti che devono essere aggiornati con le informazioni che provengono dalla parte sinistra.


t091-Localizzare-applicazioni-iphone-ipad-macos-Localizable-Strings-Merge-03

Possiamo stare tranquilli: lo stile chiaro e essenziale ci guiderà nel processo con scelte che eliminano ogni ambiguità. Ma vediamolo nei dettagli.

Creazione dei file Localizable.strings

Per generare i file “Localizable.strings” da inviare ai traduttori è sufficiente trascinare nella parte sinistra, tramite “drag & drop”, tutti i file sorgente. In alternativa si può trascinare direttamente la cartella che contiene il progetto: in tal caso verranno filtrati in automatico tutti e soli i file sorgente (su cui eventualmente si possono operare dei raffinamenti, eliminando i file non necessari).


t091-Localizzare-applicazioni-iphone-ipad-macos-Localizable-Strings-Merge-04

A questo punto il pulsante “Genera Stringhe” diventa attivo (prima era disabilitato). Cliccandoci sopra verrà avviata l’elaborazione, al termine della quale ci verrà chiesto dove salvare il file “Localizable.strings” generato da zero e contenente tutte le stringhe da tradurre. Una copia di questo file dovrà essere poi inviata a ciascun traduttore.

Merge dei file tradotti

Quando i traduttori ci avranno inviato i file completi di traduzioni o se nel frattempo abbiamo modificato qualcosa, dovremo eseguire l’operazione di “merge” che unirà le stringhe già tradotte con tutte quelle eventualmente aggiunte nel frattempo.

Per eseguire il merge dovremo trascinare nella parte sinistra, sempre tramite “drag & drop”, tutti i file sorgente, esattamente come abbiamo fatto al punto precedente.

A questo punto, però, al posto di cliccare sul pulsante “Genera Stringhe”, trascineremo nella parte di destra, (via “drag & drop”), i file “Localizable.strings”, uno per ogni lingua, ricevuti dai traduttori. Il pulsante sotto cambierà quindi nome in “Merge Stringhe”:


t091-Localizzare-applicazioni-iphone-ipad-macos-Localizable-Strings-Merge-05

Un semplice click e i file “Localizable.strings” verranno automaticamente aggiornati unendo le stringhe aggiunte nel frattempo ed eliminando quelle tradotte, ma eventualmente non più presenti nei file sorgente. Il nostro consiglio è di lasciare sempre selezionata l’opzione “Crea copia di backup prima del merge”, in tal modo, prima di sovrascrivere un file Localizable.strings, ne viene creata una copia di sicurezza con lo stesso nome a cui viene aggiunta l’estensione .backup.

A questo punto, se andiamo ad aprire con il nostro editor di testo preferito i nuovi file “Localizable.strings” vedremo al loro interno le nuove stringhe marcate con il tag NEW:


t091-Localizzare-applicazioni-iphone-ipad-macos-Localizable-Strings-Merge-06

Se una stringa per qualche motivo è stata rimossa dai sorgenti viene automaticamente eliminata anche dai file tradotti. Questo è molto utile perchè garantisce che tutte le stringhe presenti nei file “Localizable.strings” siano usate nell’applicazione.

Conclusione

Localizable Strings Merge non solo ci semplifica e velocizza le operazioni di unione delle traduzioni, ma ci garantisce che non manchi niente, che i file di localizzazione siano ben formattati e in ordine e, cosa più importante, ci permette di risparmiare tempo e costi preziosi.

Share this story:
  • tweet

Tags: Localizable Strings MergeLocalizable.stringslocalizzare applicazioni iPadlocalizzare applicazioni iphonelocalizzare applicazioni Mac OSTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Come tradurre un app iOS: i tool e i plugin Xcode per velocizzare la localizzazione in più lingue delle nostre app

    19 Gennaio 2015 - 0 Comment
  • Localizable Strings Merge: localizza le tue applicazioni iPhone, iPad e Mac in più lingue

    30 Marzo 2011 - 1 Comment

Author Description

5 Responses to “T#091 – Localizzare le proprie applicazioni iOS e Mac OS X con Localizable Strings Merge”

  1. 7 Aprile 2011

    Andrea96

    tra quanto il prossimo appuntemento del corso compkleto di C#6????

  2. 7 Aprile 2011

    The Rider

    Ottimo articolo!!

  3. 8 Aprile 2011

    gianlucasaroni

    ma usando questa utility, nell’applicazione bisogna comunque creare delle
    NSString *stringa = NSLocalizedString(@”STRINGA”, @””);
    ??
    e poi io per esempio ho “it” e “en” con varie label non dichiarate nel codice quando ho aggiunto la seconda lingua si sono creati due .xib e ho modificato queste label da IB è giusto? se ora volessi aggiungere “fr” si creerebbe un altro xib che dovrò modificare da IB?
    Grazie

  4. 11 Aprile 2011

    francesco

    ho provato ad acquistare, ma mi dà questo errore
    “Impossibile installare Localizable Strings Merge su questo computer, perché è richiesto un processore Intel a 64 bit.”

  5. 13 Aprile 2011

    Valerio

    @Francesco: proprio ieri è uscita la nuova versione 1.5 che supporta anche i processori a 32-bit. Se provi a riscaricarla ora dovrebbe funzionare anche sul tuo computer.

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO