Le novità della localizzazione con ASP.NET 2.0

di Daniele Bochicchio, in ASP.NET 2.0, Localizzazione, Expression Builders,

Le funzionalità di localizzazione offerte da ASP.NET sono state potenziate nella versione 2.0, per offrire una maggiore possibilità di fornire applicazioni in più lingue.

Il sistema più semplice è quello di utilizzare i file di risorse locali, che sono specifici di ogni pagina.
Per utilizzare questa funzionalità è necessario inserire i file di risorse sotto la nuova directory di sistema denominata /App_LocalResources/, sotto la root.
I file devono avere lo stesso nome della pagina, con l'estensione .resx.
Ad esempio il file principale dovrà chiamarsi default.aspx.resx, mentre quello contenente le risorse in inglese, dovrà chiamarsi default.aspx.en.resx e così via.

Successivamente è possibile aggiungere una chiave in entrambi i file di risorse, ad esempio denominata WelcomeString, e richiamarne il valore attraverso il nuovo Expression Builder

<%$Resources%>

in questo modo:

<asp:Label ID="lblWelcome" runat="server" Text="<%$ Resources:WelcomeString%>" />

Oltre a poter definire i file in maniera privata per la pagina, è anche possibile farlo in maniera centralizzata. In questo caso la directory dove salvare i file di risorse è /App_GlobalResources/ e la nomenclatura da dare ai file è la stessa (ad esempio Strings.resx).

In questo caso la sintassi è leggermente diversa, dato che deve contenere anche il nome della classe generata a partire dal file di risorse, così:

<asp:Label ID="lblWelcome" runat="server" Text="<%$ Resources: Strings, WelcomeString%>" />

Esiste infine la possibilità di utilizzare questa nuova sintassi:

<asp:Label ID="lblWelcome" runat="server" meta:resourcekey="lblWelcomeString" />

In questo caso sarà necessario dare nel file di risorse un nome alla risorsa del tipo "lblWelcomeString.Text", poichè sarà applicata direttamente la proprietà corrispondente nel controllo. Ovviamente questa tecnica vale per tutti i controlli.

Infine, per evitare di utilizzare controlli di tipo Label, ASP.NET 2.0 introduce un nuovo controllo, denominato Localize, che serve proprio per contenere queste espressioni, da utilizzare in questo modo:

<asp:Localize runat="server" Text="<%$ Resources:WelcomeString%>" />

La CultureInfo può essere applicata in maniera programmatica, attraverso un'istruzione di questo tipo:

System.Threading.Thread.CurrentThread.CurrentUICulture= new CultureInfo("en-us");

oppure demandare la scelta ad ASP.NET, con queste istruzioni da salvare nel web.config:

<globalization uiCulture="auto" enableClientBasedCulture="true" />

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi