• 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#034 – Come localizzare le nostre applicazioni iPhone [aggiornato]

By Redazione | on 15 Aprile 2010 | 21 Comments
Senza categoria

Bandiere Localizzazione Applicazioni iPhone Salve a tutti mi chiamo Vanni ( nickname Ragazzetto ) e sono lo sviluppatore dell applicazione per iPhone iEcology che attualmente è in fase di revisione !
Con questo articolo volevo illustrarvi un modo piuttosto semplice per localizzare le vostra applicazione in altre lingue !
A parer mio la localizzazione di un’applicazione in più lingue acquista un valore molto importante nel caso vogliate pubblicarla in AppStore , ogni utente apprezzerà il fatto di poter usare l’applicazione nella propria lingua e quindi, considerando che il 58% degli iPhone del mondo sono nel Nordamerica ( statistica AdMob di luglio 2009 ), almeno la localizzazione in inglese la reputo praticamente indispensabile !
Nel mio caso tutto lo sviluppo, per comodità, è stato fatto in italiano per poi aggiungere una seconda lingua: l’ inglese.

Cominciamo con il localizzare i file di interfaccia grafica .xib:

clicchiamo con il tasto destro del mouse sul file _ViewController.xib e dal menù a tendina selezioniamo Get Info:


T034 - Localizzazione app iphone screenshot 01

Dalla finestra info, all’interno del tab “ General “, clicchiamo sul tasto in basso a sinistra “ make File Localizable “


T034 - Localizzare applicazioni iPhone screenshot 02

Controlliamo che sia spuntato il Target della nostra applicazione e torniamo quindi nel Tab General.


t034 - Localizzare applicazioni iPhone screenshot 03

All’interno di questa finestra Clicchiamo sul tasto in basso a sinistra “ Add Localization “


t034 - Localizzare applicazioni iPhone screenshot 04

Inseriamo il nome della nostra localizzazione e clicchimo su Add.


t034 - Localizzare applicazioni iPhone screensgot 05

Ci ritroveremo quindi le nostre due localizzazioni. Chiudendo la finestra noteremo che Xcode avrà creato una copia del nostro file .xib


t034 - Localizzare applicazioni iPhone screenshot 06

Adesso i 2 file sono completamente identici , toccherà a noi variare i testi al loro interno per adattarli alla lingua impostata.


t034 - Localizzare applicazioni iPhone screenshot 07

In questo modo Xcode utilizzerà il file provalocalizzazione_ViewController.xib ( English) di default ogni volta che troverà impostata all’interno del nostro iPhone ( o del simulatore ) una lingua diversa dall’italiano mentre quando troverà impostata la lingua “Italiano” utilizzerà il file provalocalizzazione_ViewController.xib (Italian).

Ci tengo a sottolineare che la localizzazione è un aspetto che va eseguito nelle ultime fasi di tutto il progetto , nel nostro caso, infatti, i file per l’interfaccia grafica sono solo 2 e ogni modifica all’interfaccia effettuata da ora in avanti va eseguita su entrambi i file. Questo può risultare molto più scomodo se applicato a più file. Considerate inoltre che a causa di una semplice svista, potreste tralasciare qualche modifica in un file o in un altro, cosa che porterebbe sicuramente a qualche malfunzionamento indesiderato.

A questo punto dobbiamo localizzare ogni testo che viene visualizzato attraverso il codice , ad esempio, quello presente in un alertView.

Vediamo quindi questo piccolo esempio che, tramite queste poche righe di codice, ci permette di intercettare la lingua impostata dall’utente e di conseguenza mostrare a video l’alertView nella lingua desiderata:

-(IBAction)alert1:(id)sender{
	// codice per intercettare la lingua impostata dall utente  
	
	NSUserDefaults  *defaults         = [NSUserDefaults standardUserDefaults];
	NSArray         *languages        = [defaults objectForKey:@"AppleLanguages"];
	NSString    *currentLanguage  = [languages objectAtIndex:0];
	NSLog(@"Codice lingua %@", currentLanguage);
	
	
	if( [currentLanguage isEqualToString:@"it"] ) {
		// codice in italiano !
		UIAlertView * alertView1 = [[UIAlertView alloc] initWithTitle:@"Titolo in Italiano " message:@"Testo in Italiano" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
		[alertView1 show];
		[alertView1 release];
	} 
	else {
		// codice in altra lingua !
			UIAlertView * alertView1 = [[UIAlertView alloc] initWithTitle:@"Title in English " message:@"Text in English " delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
		[alertView1 show];
		[alertView1 release];
	}

Con le prime 4 righe all’interno dell’ IBAction non faremo altro che determinare la lingua impostata dall’utente, mentre con il successivo ciclo di “If else” assegneremo un’azione nel caso la lingua impostata sia l’italiano:

if( [currentLanguage isEqualToString:@"it"] ){
}

ed un altra azione negli altri casi ( ovvero una lingua diversa dall italiano )

else {
} 

Nel caso decidiate di inserire localizzazioni in più lingue i cicli di if else saranno più lunghi ma avranno lo stesso concetto! (o eventualmente potrete usare altri sistemi, ad esempio uno switch)

Il risultato di questa nostra prova sarà quello mostrato in figura qui sotto:


t034 - Localizzare applicazioni iPhone screenshot 08

Noterete la lingua impostata nello spazio riservato al gestore telefonico nella barra in alto a sinistra !

Per verificare il diverso funzionamento ci basterà dopo il “Build and Go” modificare le impostazioni all’interno del nostro iPhone / Simulatore:

Impostazioni > Generali > Internazionale > Lingua

Sperando di essere stato chiaro ed esauriente vi saluto

Ciao

Vanni

AGGIORNAMENTO

In riferimento al commento di dylandogg volevo sottolineare e precisare che con la stessa tecnica utilizzata per localizzare i file .xib è possibile localizzare anche solo le immagini.
Riepilogando:

Tasto destro > get info > make file localizable >add localization > lingua ( ad esempio Italian ) .

Analogamente al caso precedente adesso avremo il nostro file immagine perfettamente sdoppiato in due cartelle del nostro progetto English.lproj e Italian.lproj .

In questo caso ci basterà sovrascrivere il file che ci interessa far variare nelle diverse localizzazioni ed il gioco è fatto !

Share this story:
  • tweet

Tags: applicazioni multilinguaiphonelocalizzare applicazione iphonelocalizzazioneTutorial 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

  • Google Maps API aperte a tutti gli sviluppatori iOS

    26 Febbraio 2013 - 2 Comments
  • T#098 – Localizzare le preferenze delle applicazioni iPhone e iPad (parte 2)

    1 Luglio 2011 - 2 Comments
  • T#069 – Localizzare applicazioni iPhone tramite NSLocalizedString

    1 Settembre 2010 - 6 Comments

Author Description

21 Responses to “T#034 – Come localizzare le nostre applicazioni iPhone [aggiornato]”

  1. 15 Aprile 2010

    NormApps

    Utilissima, grazie!

  2. 15 Aprile 2010

    iCGdev

    Secondo me si fa molto prima con NSLocalizedString

  3. 15 Aprile 2010

    Ragazzetto

    Può essere , io nel mio caso ho scelto di seguire questa linea !

    X NormApps

    prego 🙂

  4. 15 Aprile 2010

    Giovambattista Fazioli

    Vedere anche:

    http://www.appleside.it/develop/tecniche-per-localizzare-applicazioni-apple-iphone/
    http://www.appleside.it/develop/localizzare-le-applicazioni-apple-iphone-in-modo-rapido/
    http://www.undolog.com/2010/02/23/come-localizzare-immagini-e-viste-di-interface-builder/

  5. 15 Aprile 2010

    alexiaco

    Ciao, volevo segnalare a tutti gli sviluppatori che se cercano qualcuno in grado di localizzare la loro app e di aiutarli nel marketing in Francese, Spagnolo e Tedesco mi possono contattare 🙂 Ho tradotto e localizzato diversi siti e applicazioni anche grandi (wikio, jesigne, waze , photocollage) e posso anche seguire l’assistenza (mail etc). se il progetto mi piace lo posso anche fare gratis altrimenti possiamo metterci d’accordo in un altro modo. mandate un dm su twitter se siete interessati 😉 Alex

  6. 15 Aprile 2010

    dylandogg

    ciao, innanzitutto complimenti era il tutorial che cercavo!! ho un problema però.. nel mio caso devo localizzare solo dei file .xib nei quali cambio l’immagine a seconda della lingua. localizzo il file come da guida ma cambiando lingua nel simulatore rimane sempre l’italiano. dove sbaglio?

  7. 15 Aprile 2010

    dylandogg

    dylandogg :

    risolto, risolto!! bastava fare un clean della build!! 😀

    ciao, innanzitutto complimenti era il tutorial che cercavo!! ho un problema però.. nel mio caso devo localizzare solo dei file .xib nei quali cambio l’immagine a seconda della lingua. localizzo il file come da guida ma cambiando lingua nel simulatore rimane sempre l’italiano. dove sbaglio?

    Inserisci qui il tuo commento

  8. 15 Aprile 2010

    Ragazzetto

    Bravo dylandogg !

  9. 16 Aprile 2010

    1° Articolo ! « Ragazzetto-project

    […] che oggi è stato pubblicato il mio primo articolo di sviluppo iPhone […]

  10. 16 Aprile 2010

    Ragazzetto

    X dylandogg

    spero ti possa far piacere e ti possa essere utile questo ultimo aggiornamento !

  11. 17 Aprile 2010

    Ragazzetto

    alexiaco :

    Ciao, volevo segnalare a tutti gli sviluppatori che se cercano qualcuno in grado di localizzare la loro app e di aiutarli nel marketing in Francese, Spagnolo e Tedesco mi possono contattare Ho tradotto e localizzato diversi siti e applicazioni anche grandi (wikio, jesigne, waze , photocollage) e posso anche seguire l’assistenza (mail etc). se il progetto mi piace lo posso anche fare gratis altrimenti possiamo metterci d’accordo in un altro modo. mandate un dm su twitter se siete interessati Alex

    Grazie Alex per l’ info
    la mia app è stata approvata oggi ed è localizzata in inglese e italiano , magari per i prossimi aggiornamenti mi potrebbe interessare una collaborazione !

  12. 17 Aprile 2010

    gigi

    Ciao ragazzi, complimenti per l’articolo.
    Ho una domanda.. Supponete che debba utilizzare dei campioni audio in varie lingue..Mi sembra di capire che All’interno della applicazione dovrei mettere tutti i campioni e poi determinare in base alla lingua dell’utente quale campione presentare .. Il mio problema e’ che ogni set di campioni mi occupa circa 5 megabyte per ogni lingua.. Per cui se metto 10 lingue sono gia’ 50 mega .. Un utente italiano o inglese dovrebbe scaricarsi comunque 50 mega invece di 5
    C’e’ un rimedio?
    Grazie.

  13. 18 Aprile 2010

    Ragazzetto

    Ciao Gigi
    uno dei problemi della localizzazione e il fatto di dover duplicare in svariate copie lo stesso file per “accontentare” più lingue possibile e da un lato fa piacere al cliente , dall’ altro incrementa vertiginosamente la pesantezza dell’ app !
    Non conosco l’ importanza dell’ audio nella tua App ma pensa comunque che grandi case come Gameloft, che produce giochi quasi sempre localizzati in varie lingue , ovviano il problema lasciando i file audio in inglese e localizzano i sottotitoli e i messaggi a video ( ad esempio Avatar ), nel loro caso funziona , nel tuo no so !
    In più mi era venuta in mente un idea ma non so se è realizzabile : potresti fare l’ App con audio in inglese ( che comunque è la lingua + diffusa ) e poi proporre sotto forma di download aggiuntivo ( tipo in App Purchase ) le altre lingue, in questo modo ogni utente potrebbe avere la propria lingua senza avere un file di 50 mega del quale 45 sono buttati via !
    Sicuramente la realizzazione sarà + complessa ( specialmente nella gestione dell’ In App Purchase ) ma potrebbe essere una soluzione .
    Spero di averti dato qualche idea !

  14. 1 Maggio 2010

    gigi

    Grazie ragazzetto per la risposta.. La mia domanda e’ non si possono fare direttamente piu’ versioni della stessa applicazione in lingua diversa senza localizzazione intendo e pubblicare come stand alone?
    Ho visto alcune soluzioni tipo questa..

  15. 12 Luglio 2010

    cris

    quando provo a modificare i vari testi a seconda della lingua nei file *.xib (english) e *xib(Italian) questi rimangono invariati come nella versione senza localizzazione (SDK 4,0):
    Ho seguito tutto passo passo e riprovato più volte ma il problema rimane, come posso fare.

  16. 23 Luglio 2010

    fast


    cris:

    quando provo a modificare i vari testi a seconda della lingua nei file *.xib (english) e *xib(Italian) questi rimangono invariati come nella versione senza localizzazione (SDK 4,0):
    Ho seguito tutto passo passo e riprovato più volte ma il problema rimane, come posso fare.

    anche a me rimane così, però ho provato a creare un nuovo progetto e funziona….come mai??

  17. 27 Ottobre 2010

    Gianluca

    Anche io ho lo stesso problema…

  18. 12 Gennaio 2011

    Riccardo Pietrucci

    è corretto utilizzare NSLocalizedString, secondo me non si tratta di “gusti”

  19. 26 Ottobre 2012

    Davide

    Servizio di traduzione di app per iPhone e iPad:
    http://www.translated.net/it/tradurre-applicazioni-iphone

    qui trovi info utili per decidere in quale lingue tradurre e quale processo seguire per tenere le tue apps aggiornate in tutte le lingue.

    Puoi anche ottenere il preventivo gratuito per la traduzione dei testi in una o più lingue. Il processo è molto semplice: si invia il file di localizzazione in formato .strings, dopo la traduzione il file viene restituito tradotto pronto per essere embeddato nell’App.

  20. 8 Aprile 2014

    Walter

    ciao a tutti , la localizzazione del file xib funziona perfettamente
    ho la necessità di localizzare un file plist , ho eseguito anche in questo caso tutte le operazioni ma non funziona dove sbaglio?

  21. 8 Aprile 2014

    Walter

    risolto
    occorre utilizzare
    pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

    invece di
    pathForResource:(NSString *)name ofType:(NSString *)extension

    scusate il disturbo
    ciao

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