Localizzazione e globalizzazione di applicazioni web - Prima parte

4 pagine in totale: <<Indietro 1 [2] 3 4 Avanti >>

Risorse locali

I file di risorse locali sono documenti collegati ad una singola pagina e contengono le informazioni di localizzazione solo per questa. Pur potendo essere sfruttati anche da altre pagine, essi offrono la loro massima potenza quando vengono utilizzati da quella a cui sono direttamente associati.

Per poter collegare le due entità si sfrutta la cartella speciale introdotta con ASP.NET 2.0 /App_LocalResources/, all'interno della quale vanno inserite le risorse. Questa cartella deve essere creata allo stesso livello della pagina da localizzare, quindi ne deve esistere una per ogni directory dell'applicazione che contiene pagine o UserControl da tradurre.

Il fatto che un file di risorse sia all'interno della cartella non basta. Infatti il file deve seguire una regola di nomenclatura ulteriore oltre a quelle viste nel paragrafo precedente: prima della cultura, deve essere specificato il nome della pagina a cui questo è associato. In altre parole, la sintassi completa deve essere nomeoggetto.estensione.codiceiso.resx.

Un file di risorse locali può essere collegato non solo ad una pagina, ma anche ad una Master Page, uno UserControl ed una SiteMap. Per fare un esempio, per associare un file alla pagina Page.aspx, si deve creare nella stessa directory la cartella /App_LocalResources/ e, al suo interno, creare il file di fallback Page.aspx.resx e i file Page.aspx.en.resx e Page.aspx.fr.resx per gestire rispettivamente la lingua inglese e quella francese.

Seguendo la stessa logica, basta creare i file UserControl.ascx.resx, UserControl.ascx.en.resx e UserControl.ascx.fr.resx per rendere localizzabile il controllo UserControl.ascx. Lo stesso identico discorso vale anche per le Master Page ed i file SiteMap.

Figura 18.3

Figura 18.3 - La struttura dei file di risorse locali

Come si è visto nel paragrafo introduttivo, uno degli scopi del nuovo framework di localizzazione di ASP.NET 2.0 è quello di rendere automatico il popolamento dei controlli senza dover ricorrere al codice. Il collegamento tra i dati ed il controllo sulla pagina avviene attraverso il nuovo meta-attributo meta:resourcekey.


Esempio 18.1
<asp:button id="btn" runat="server" meta:resourcekey="btn" />

Si tratta di un piccolo attributo, ma con molta magia dietro. Infatti, esaminando la sintassi, si nota che nessuna proprietà del controllo viene collegata, ma il controllo stesso viene associato ad una chiave. Questo meccanismo può essere facilmente capito dando un'occhiata alla figura 17.4 presa dall'editor di risorse.

Figura 18.4

Figura 18.4 - Contenuto del file di risorse locale

La chiave "btn" viene usata come prefisso seguita dalla proprietà che si vuole localizzare. Questo meccanismo è applicabile a tutte le proprietà di un controllo e non solo a quelle di localizzabili di default. Se, ad esempio, si vuole modificare la classe CSS in base alla lingua, basta creare una chiave btn.CssClass ed impostarne il valore. Questa sintassi viene definita implicita in quanto non viene localizzata esplicitamente ogni proprietà, ma il controllo.

Quando si crea una pagina complessa, i controlli da inserire possono essere molti e ancora di più le voci da inserire nei file. Inserire queste informazioni manualmente (chiavi e valori) comporta un dispendio di tempo notevole e introduce la possibilità di errori.

Per ovviare a questo problema, Visual Studio 2005 permette di creare un file di risorse con tutte le chiavi già inserite in maniera completamente automatica. Per fare questo, si deve portare la pagina in Design-View e selezionare la voce di menu "Tools -> Generate Local Resources". Questa voce lancia un comando che innanzitutto cicla tutti i controlli server della pagina e, per ognuno di essi, cerca quali sono le proprietà localizzabili. (Quest'ultimo passo viene effettuato cercando le proprietà che sono decorate con l'attributo Localizable). Ad ogni controllo viene quindi aggiunto il nuovo meta-attributo con l'assegnazione di un valore calcolato automaticamente. Infine, qualora non esista, viene creata la directory App_LocalResources e successivamente viene generato il file di risorse con tutte le chiavi estratte ed i valori inizializzati con le proprietà già impostate sul controllo.

Visual Studio 2005 genera e popola con questo meccanismo solo il file di fallback. Se si vuole generare un file per una nuova lingua, basta fare il copia-incolla di quello generato, dare l'opportuno nome al nuovo file e modificare i dati al suo interno, risparmiando così molto tempo ed eliminando il rischio di dimenticare le chiavi o inserirne di sbagliate.

Non sempre è corretto localizzare tutti i controlli come nel caso di una etichetta che mostra il simbolo percentuale. Prima di lanciare la generazione automatica delle risorse, si può impostare il meta-attributo meta:localize a false per ogni controllo che non si vuole coinvolgere nel processo facendo sì che questo venga ignorato.

4 pagine in totale: <<Indietro 1 [2] 3 4 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.
ridaria scrive:
Localizzazione e globalizzazione di applicazioni web - Prima parte

Ottimo preciso e dettagliato come ti avevo già detto un pò di tempo fa. Allora ti chiesi:e se volessi inserire comunque il classico pulsantino o ...
giovedì 15 maggio 2008 | 3 risposte

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC