Localizzazione e globalizzazione di applicazioni web - Prima parte

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

Un file di risorse locali può contenere non solo dati per internazionalizzare i controlli, ma anche altre informazioni completamente scollegate. Può accadere, infatti, che si debba calcolare il testo di una etichetta in base a determinate condizioni, comporre un messaggio o altro ancora. In questi casi legare un oggetto in maniera dichiarativa non è possibile e si deve ricorrere al codice.

L'accesso alle risorse in maniera programmatica è estremamente semplice grazie alla nuova API GetLocalResourceObject presente nelle classi TemplateControl e HttpContext. La prima è utilizzata direttamente all'interno della pagina, mentre la seconda viene sfruttata quando ci si trova in una classe che non deriva da TemplateControl oppure quando si vuole accedere alle risorse associate ad un'altra pagina.


Esempio 18.2 - VB
GetLocalResourceObject("chiave")
GetLocalResourceObject("btn.text")

Esempio 18.2 - C#
GetLocalResourceObject("chiave");
GetLocalResourceObject("btn.text");

L'utilizzo dell'API tramite un oggetto che deriva TemplateControl è molto banale in quanto si effettua semplicemente l'accesso ad una chiave. Visto che i file di risorse contengono coppie chiave-valore, anche i dati di collegamento ai controlli non sfuggono a questa regola e sono accessibili da codice come una normale chiave.


Esempio 18.3 - VB
HttpContext.GetLocalResourceObject("Page.aspx", "chiave")
HttpContext.GetLocalResourceObject("Page.aspx", "btn.Text")

Esempio 18.3 - C#
HttpContext.GetLocalResourceObject("Page.aspx", "chiave");
HttpContext.GetLocalResourceObject("Page.aspx", "btn.Text");

L'utilizzo del metodo della classe HttpContext prevede anche il passaggio del nome della pagina a cui il file di risorse fa riferimento.

Analizzando il controllo attraverso l'Editor di proprietà di Visual Studio, si nota che quelle localizzate sono segnalate tramite un'icona rossa ed un tooltip quando ci si passa sopra col mouse.

Nota
Visual Studio 2005 lavora sempre e solo con il file di risorse di fallback, quindi se il file di risorse di un'altra cultura gestisce una proprietà in più, questa non viene segnalata.
Figura 18.5

Figura 18.5 - Editor delle proprietà che visualizza le proprietà localizzate

Risorse globali

Pur coprendo gran parte delle esigenze, le risorse locali hanno il grosso limite di essere dedicate ad una sola pagina. Questo significa che quando ci sono parole, o anche frasi, comuni all'interno di un'applicazione, queste devono essere ripetute in ogni file.

La situazione diventa insostenibile nel momento in cui l'applicazione cresce ed il numero di pagine aumenta. Il problema si manifesta in maniera più evidente durante la fase di manutenzione quando si deve modificare un valore presente in più pagine; infatti, utilizzando le risorse locali per questo genere di dati, si dovrebbe modificare il file di ogni pagina rendendo il processo estremamente arduo e soprattutto maggiormente soggetto ad errori.

Questo limite viene superato con l'introduzione delle risorse globali che sono una feature completamente nuova di ASP.NET 2.0. Grazie alle risorse globali, si possono definire dati in un unico file e renderli accessibili ovunque nell'applicazione semplificando non poco la gestione degli elementi condivisi in uno scenario come quello appena descritto.

Così come per le risorse locali, anche quelle globali hanno una loro cartella speciale dove devono essere inseriti i file: /App_GlobalResources/. Questa directory deve essere creata nella root dell'applicazione e può contenere diversi file, anche per la stessa cultura, che devono comunque mantenere una nomenclatura molto simile a quella utilizzata per i file locali: nomefile.codiceiso.resx. Anche in questo caso, se non si include il codice ISO, il file in questione viene considerato come file di fallback.

Non essendo i file di risorse globali legati ad una specifica pagina, si potrebbero tranquillamente inserire tutti i dati in un unico file per cultura; in questo caso, però, si rischia di far diventare il documento eccessivamente grande quando le chiavi cominciano ad aumentare.

Per questo motivo, è stata data la possibilità di creare più file per ogni cultura, introducendo un ulteriore elemento di classificazione che rende sicuramente più semplice la manutenzione e l'utilizzo nel codice.

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