Le impostazioni linguistiche in una pagina ASP.NET sono dipendenti da due proprietà: Culture e UICulture. La proprietà Culture deterimina il risultato delle funzioni dipendenti dalle impostazioni lingiuistiche come ad esempio l’uso delle maiuscole e delle minuscole, la formattazione di date e numeri, il formato della valutam, il confronto tra stringhe ecc…La proprietà UICulture determina quali risorse devono essere caricate per la pagina.Da questa premessa è quindi semplice comprendere come è possibile mantenere invariato il formato della valuta in un’applicazione multilingua: sarà sufficiente infatti mantenere costante il valore della proprietà Culture e cambiare la propietà UICulture per caricare di volta in volta le risorse della pagina in base alla lingua selezionata.Ciò è possibile eseguendo l’override del metodo InitializeCulture in ogni pagina dell’applicazione. Volendo quindi mantenere costante il formato della valuta all’€, per ogni pagina sarà sufficiente richiamare la seguente Sub:
Protected Overrides Sub InitializeCulture() ' Culture: valore costante Thread.CurrentThread.CurrentCulture = New CultureInfo("it-IT") ' UI Culture: valore contenuto nella variabile di Sessione Session("UICulture") Dim c As CultureInfo If Session("UICulture") IsNot Nothing Then c = DirectCast(Session("UICulture"), CultureInfo) Else c = New CultureInfo("it-IT") End If Thread.CurrentThread.CurrentUICulture = c MyBase.InitializeCulture() End Sub
in cui il valore di UICulture è determinato dalla variabile di Sessione UICulture in modo che diventi comune a tutte le pagine.