Sempre nella mia visione astrusa della realtà, non ho mai visto di buon occhio la classe ResourceManager soprattutto per le webapplication. Per la creazione di siti o pagine in più lingue ho sempre visto, come soluzione migliore, la creazione di pagine alternative html o l'uso di file xml o tutt'al più, l'uso di un database.
Leggendo il nuovo approcio alla localizzazione nel nuovo Framework 2.0 e finalmente giocandoci personalmente mi sono accorto come sia ora facile e molto comoda la creazione e lo sviluppo anche di pagine asp.net localizzate! La fonte di tanto mio cambiamento d'idea è in questo articolo.
Innanzitutto non è più obbligatorio compilare i files .resx, ma è sufficiente trasferire questi file nella cartella "Resources" o, dalla Beta 2, in "/Application_LocalResources" (si veda quest'altro articolo per maggior info) per avere subito a disposizione i file compilati come classi. Per chi ha ancora utilizzato la classe ResourceManager con il Framework 1.* non potrà non accorgersi della facilità dell'utilizzo delle risorse presenti direttamente come se fosse una classe:
Resources.FileRisorse.NomeKey
Ma la miglioramento che trovo davvero comodo nelle pagine asp.net, è l'utilizzo con Visual Studio 2005 del Tool, "Generate Local Resource". Visual Studio creerà per noi un file di risorse per quella pagina e vi inserirà tutti i web control come Label, TextBox e così via. Quindi possiamo inserire direttamente nel file di risorse il contenuto che dovranno avere questi web control. Vogliamo creare una versione di quella pagina in un'altra lingua? Copiamo questo file di risorse aggiungendo come suffisso la lingua desiderata, per esempio "pagina.fr.aspx", e qui possiamo inserire la versione in francese della pagina. Ma le faciltiazioni non finiscono qua, è possibile usare anche il nuovo web control, "
Ma la cosa che mi ha addiruttura entusiasmato, è la possibilità dal web.config di decidere sì una lingua di default per il sito, ma con la possibilità che le pagine leggendo gli header inviati dal browser sulla lingua, invii automaticamente la lingua corretta al client senza nessuna nostro intervento a livello di codice:
<globalization uiculture="auto:it" culture="auto:it-IT" />
In questo caso la lingua di default è l'italiano, ma se è presente una file di risorse per una lingua richiesta dal browser, sarà inviato il contenuto con la lingua corretta.
Info più complete con esempi vari le si trovano al link indicato ad inizio pagina. Ottimo.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Un po' di benchmark tra Linq, Entity Framework e Nhibernate, il 12 ottobre 2008 alle 14:46
- UrlRewriting con trabocchetti vari, l'11 dicembre 2007 alle 21:00
- Windows Forms - DataGridView e validazione, il 23 settembre 2007 alle 20:08
- ControlParameter e masterpage... bug?, il 23 dicembre 2006 alle 15:58
- Se Visual Studio 2005 non accetta più la tastiera, il 16 dicembre 2006 alle 20:45
- Service Pack 1 di Visual Studio 2005, il 16 dicembre 2006 alle 20:35