Ciao, sto creando un semplice sito in due lingue: inglese come lingua di base e italiano come seconda lingua.
Per quanto riguardo le GlobalResources funziona tutto bene, viene riconosciuta la lingua dell'utente e il sito risulta in italiano per chi ha impostato la lingua italiana, mentre è in inglese per tutti gli altri.
Nella MasterPage del sito ho inserito due pulsanti per modificare la lingua in inglese o in italiano tramite questo codice:
codice:
Protected Sub en_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles en.Click
Dim culture As String = "en"
Thread.CurrentThread.CurrentUICulture = New CultureInfo(culture)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture)
Session.Add("lang", culture)
Server.Transfer(Request.Path)
End Sub
Protected Sub it_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles it.Click
Dim culture As String = "it"
Thread.CurrentThread.CurrentUICulture = New CultureInfo(culture)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture)
Session.Add("lang", culture)
Server.Transfer(Request.Path)
End Sub
Fino a qui tutto funziona; cliccando sui pulsanti la lingua della pagina cambia come voluto.
Il problema è che questa modifica rimane valida solo per la pagina corrente, quindi quando premo sui link che conducono ad altre pagine del sito, il sito torna nella lingua dell'utente.
Ad esempio: io sono italiano, mi collego la prima volta e vedo il sito in italiano, clicco sul pulsante per la versione inglese, la pagina diventa in inglese, clicco su un link del sito e il sito è di nuovo italiano.
Come posso mantenere attiva questa modifica per le pagine successive?
Ho letto qualcosa riguardo a "protected override void InitializeCulture()", ma non ho capito come funziona e dove deve essere scritto.
Grazie