CultureInfo

mercoledì 26 luglio 2006 - 15.32

Ciciu Profilo | Senior Member

Ciao a tutti.
Ho incluso, nel mio sito, la possibilità per l'utente di selezionare la lingua con cui visualizzarlo.
Non mi è però chiara una cosa....
Nel pre_init della pagina Default, creo un nuovo oggetto CUltureInfo, e lo assegno a System.Threading.Thread.CurrentThread.CurrentUICulture.

Il mio dubbio però è : il CurrentThread è la mia applicazione, oppure rappresenta solo la pagina corrente ? Ovvero : devo assegnare la Culture (dinamica) su tutte le pagine, oppure ho qualche meccanismo perimpostarla una volta (magari nel momento in cui l'utente decide di cambiarla) e basta ?

Ciao - Grazie

Fabio G

Brainkiller Profilo | Guru

>Il mio dubbio però è : il CurrentThread è la mia applicazione,
>oppure rappresenta solo la pagina corrente ? Ovvero : devo assegnare
>la Culture (dinamica) su tutte le pagine, oppure ho qualche meccanismo
>perimpostarla una volta (magari nel momento in cui l'utente decide
>di cambiarla) e basta ?

Ho avuto un problema del genere anche io e tuttora non mi è completamente chiaro. Io ho fatto così quando uno clicca sulla bandiera gli sparo un Cookie con la lingua prescelta, ad ogni pagina nell'InitializeCulture eseguo il codice che hai riportato per cambiare la lingua del Thread corrente. La culture puoi impostarla via codice sul Web.Config, cioè la lingua di default. Però se deve cambiare credo che devi reapplicarla nel modo che hai detto ogni volta.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Ciciu Profilo | Senior Member

Diciamo che io ho suddiviso il problema in due parti.
Gli utenti non loggati, si ciucciano il cookie (temporaneo per la sessione), mentre per quelli loggati, vado ad aggiornare una sezione del profile, che quindi resta permanente.
Volevo però centralizzare il discorso della Culture e quello dei themes. I Themes vanno impostati (dinamicamente) nel page_preinit di ogni pagina. Teoricamente la culture andrebbe, come hai detto giustamente nell'InitializeCulture di ogni pagina.
Io mi sono creato un metodo statico di una classe statica, StartPage, che imposta entrambe le cose, e lo richiamo nel Page_PreInit. Sembra che la cosa gli piaccia anche per la Culture. Del resto, immagino che si limiti a fare il lavoro due volte per pagina, impostando nuovamente la Culture che voglio nel PreInit.
Speravo che ci fosse qualcosa che mi permettesse di cambiare la Culture a livello di sessione, per centralizzare definitivamente il tutto.
Il problema (grosso) è che sto gettando le basi per costruire siti nel modo più semplice possibile, considerando che ho dei colleghi che ne sanno molto meno di me (e questo Te la dovrebbe di re lunga). Personalmente sono molto esaltato da questo ambiente di sviluppo, ma quello che vedo è che i miei colleghi hanno enormi problemi con l'utilizzo delle classi e degli eventi, per cui più è semplice, meglio è (a Settembre comunicherò loro che abbandoneremo lo sviluppo di applicazioni con accesso ai dati via Wizard, in favore di qualche ORM - e li ci sarà da ridere/piangere).

Adesso la smetto di tediarTi con queste cose. Passo e chiudo. Parto. Vado in Perù.

Grazie per l'aiuto, ci risentiamo a Settembre.
Buone Ferie anche a Te !
Ciao
FabioG
Fabio G

Brainkiller Profilo | Guru

>impostando nuovamente la Culture che voglio nel PreInit.
>Speravo che ci fosse qualcosa che mi permettesse di cambiare
>la Culture a livello di sessione, per centralizzare definitivamente
>il tutto.

Non so se funziona il cambi odi Culture nel PreInit, ricordo che ho perso molto tempo provandole tutte, poi mi hanno detto anche a me che bisognava metterla nella InitCulture.

>più è semplice, meglio è (a Settembre comunicherò loro che abbandoneremo
>lo sviluppo di applicazioni con accesso ai dati via Wizard, in
>favore di qualche ORM - e li ci sarà da ridere/piangere).

Non pensare, ci si trova molto bene con gli ORM e non sono poi così complessi come sembra. A volte forse un po' rigidi.

ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5