Localizzare le applicazioni ASP.NET con i resource file

di Cristian Civera, in ASP.NET,

Lo sviluppo del .NET Framework ha garantito molta attenzione alla localizzazione delle nostre applicazioni o più in generale degli assembly di cui sono composte.

Soprattutto nello sviluppo di siti internet ci si trova di fronte a rendere disponibile le pagine in più lingue ed una prima soluzione è quella di utilizzare un database, anche se c'è un modo più semplice e rapido. A questo proposito infatti vengono in aiuto le risorse ed in particolare il namespace System.Resources .

I file di risorse

I file .resources sono codificati e possono contenere qualsiasi tipo di dati: stringa, immagini, ecc. Per crearli ci sono vari modi:

  • l'utilizzo di files di testo : in questo caso il file può contenere ovviamente solo stringhe. Ogni riga è una stringa rappresentata dalla coppia chiave/valore (es: nome1=Paolo) ed il file di per sè non può essere utilizzato da un assembly, ma dev'essere convertito in un tipo .resources;
  • l'utilizzo di files resx : il file rappresenta la risorsa mediante un file XML ; oltre che a rendere più leggibile il file può contenere qualsiasi tipo di dato e per la sua creazione è consigliabile utilizzare tools di sviluppo come Visual Studio.Net o utilizzare la classe ResXResourceWriter, ed anche questo tipo di risorsa necessita di una conversione.

Per il nostro esempio utilizzeremo il primo metodo e doteremo la nostra pagina di due lingue: una italiana e una di default in inglese.

Creiamo quindi questo file:

 Language=Seleziona la tua lingua</br> Link1=Home page
Link2=Prodotti
Link3=Contattaci
Content=Benvenuti nel nostro sito internet. La nostra è una grande azienda nella produzione di automobili. 

e lo salviamo con nome resourceScript.it.txt. Procediamo con il creare un altro file:

 Language=Please, select your language
Link1=Home page
Link2=Products
Link3=Contact us
Content=Welcome to our website. Our firm is specialized in cars production. 

e lo salviamo con nome resourceScript.txt.

Ora utilizziamo il tool resgen.exe contenuto nel .NET Framework SDK. La sua utilità viene anche dal fatto che è possibile convertire una risorsa di un formato nell'altro tipo e viceversa, ove naturalmente sia possibile. Dobbiamo quindi lanciare dal prompt questi comando:

resgen resourceScript.it.txt resourceScript.it.resources
resgen resourceScript.txt resourceScript.resources

A questo punto abbiamo i nostri file di risorse contenenti le stringhe per il nostro sito.

Il namespace System.Resources dispone di una classe ResourceManager che ci permetterebbe in poche righe di prelevare le nostre informazioni rapidamente. In un'applicazione ASP.Net però non sfrutteremmo tutte le possibilità offerteci dal framework, perché il CRL effettua un lock sui file con i problemi che ne derivano in uno scenario multi-utente. Vediamo come si può risolvere il problema.

2 pagine in totale: 1 2

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

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