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:
Fino a qui tutto funziona; cliccando sui pulsanti la lingua della pagina cambia come voluto.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
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![]()

Rispondi quotando