189 messaggi dal 26 marzo 2001
Ciao,

ho un'applicazione ASP.NET MVC 3 in cui dopo il login devo cambiare la lingua in base alle preferenze dell'utente.

Ho creato 2 file di risorse nella cartella App_GlobalResources, uno Resources.resx che contiene le stringhe in Inglese, che è la lingua predefinita e poi ho creato il file Resources.it-IT.resx che contiene le stringhe in Italiano.

A questo punto ho creato un la classe BaseController dalla quale ereditano tutti i miei controller che è fatta in questo modo:

public class BaseController : Controller
    {
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            CultureInfo culture = new CultureInfo("en-GB");
            Thread.CurrentThread.CurrentCulture = culture;
            Thread.CurrentThread.CurrentUICulture = culture;

            base.OnActionExecuting(filterContext);
        }
    }


Nell'esempio forzo la cultura in inglese ma in realtà in quel punto leggo le preferenze dell'utente.

A questo punto nella mia view visualizzo una stringa ma è sempre in Italiano e non capisco il motivo (il sistema operativo è in Italiano e la lingua di default del browser è in Inglese UK, en-GB).

Anche forzando la culture, le stringhe sono sempre in Italiano.

Ho provato anche ad impostare la culture nel metodo ExecuteCore al posto del metodo OnActionExecuting, ma le stringhe sono sempre in Italiano.

Qualche suggerimento per cambiare la culture in un base controller?
Mi sta sfuggendo qualcosa sicuramente...

Grazie.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.