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 - 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.
<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 - 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
- Pagina 1
- Pagina 2
- Pagina 3
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Utilità
Contenuti
Stampa
Download




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 ...
Continua »»» | Rispondi »»»