Localizzare in due lingue un applicazione Windows Phone 7

Al fine di incrementare il numero di possibili utilizzatori di un applicazione pubblicata sul marcketplace di windows phone 7 è utile tradurre l’applicazione in più lingue.

Per farlo basta seguire questa semplice guida i cui passaggi fondamentali sono:

· Modifica del file *.csproj;

· Modifica della proprietà Natural Language;

· Creazione del file AppResources.resx;

· Creazione del file AppResources.en-US.resx;

· Creazione della classe LocalizedStrings.cs;

· Modifica del file App.xaml;

· Modifica del file MainPage.xaml.

 

Modifica del file *.csproj

Per localizzare un applicazione WP7 in più lingue la prima cosa da fare è creare una normale applicazione da visual studio. Una volta creata l’applicazione chiudete visual studio (sembrerà strano ma è necessario chiuderlo) e cercate da esplora risorse la cartella contente il file *.csproj ed apritelo con notepad. In questo file andranno aggiunte le informazioni per le lingue da supportare.

Cercate il tag <SupportedCulture> all’interno del codice ed aggiungeteci le lingue da supportare

clip_image002

Salvate il file e chiudetelo.

Modifica della proprietà Natural Language

Aprite Visual Studio e andate su project->NomeApplicazione Properties e selezionate il Natural Language (ovvero la lingua di default dell’applicazione)

clip_image004

 

Creazione del file AppResources.resx

Dopodiché create all’interno del progetto una cartella chiamata “Resources” e facendovi click destro->add-> New Idem-> Resource File e chiamatelo AppResources.resx

Questo file conterrà il testo della nostra applicazione nel linguaggio di default scelto per l’applicazione

Il funzionamento di questo file è molto semplice:

· nella colonna Name va messo il nome che ci consentirà di identificare nell’interfaccia il testo

· nella colonna Value va inserito il testo che visualizzeremo

· nella colonna Comments è possibile (non è obbligatorio) inserire dei commenti

clip_image006

IMPORTANTE!: ACCESS MODIFIER VA IMPOSTATO SU PUBLIC!!!

 

Creazione del file AppResources.en-US.resx

Una volta creato il file per la lingua principale occorre creare gli altri necessari per le altre lingue. Per cui sempre nella cartella “Resources” occorre aggiungere un altro file di tipo “ResourceFile” e occorre chiamarlo “AppResources.en-US.resx” dove al posto di “.en-US” è possibile inserire gli indicativi per le altre lingue (per l’elenco completo delle sigle delle altre lingue vedi qui: http://msdn.microsoft.com/en-us/library/ms533052%28v=vs.85%29.aspx)

Una volta creato il file, avendo cure di mantenere la proprietà “Name” uguale al file in lingua originale, occorre riempire la proprietà “Value” con il testo tradotto.

 

Creazione della classe LocalizedStrings.cs

Sempre nella cartella Resources ora occorre creare una nuova classe (click destro->add->new Item->Class) e nominarla LocalizedStrings.cs

All’interno di LocalizedString.cs va inserito il seguente codice:

clip_image008

Dove al posto di “Localizzazione” va inserito il nome della propria applicazione

 

Modifica App.xaml

All’interno del file App.xaml occorre identificare e modificare i tag <Application.Resources> come segue :

clip_image009

 

Modifica MainPage.xaml

Nella pagina principale occorre definire dove il testo localizzato dovrà apparire.

Ad esempio per far apparire il Titolo in un TextBlock

clip_image011

 

Conclusione

Lanciando l’emulatore è possibile testare il corretto funzionamento dell’applicazione.

Siccome l’emulatore non supporta altre lingue all’infuori dell’inglese per provare la nostra applicazione con lingue diverse all’interno del file App.xaml.cs occorre inserire le seguenti righe di codice:

clip_image012

E all’inizio del file (prima ancore dei vari “using ….”) aggiungere:

#define DEBUG_AGENT

Commenti