Comment définir la culture de manière globale dans mvc5

J’utilise des fichiers de ressources pour changer de langue dans mon application Web intégrée à mvc5

Dans les fichiers d’index, sa lecture de la valeur culturelle que j’ai définie.

J’appelle la méthode set culture de layout.cshtml et appelle sa valeur avec le code suivant.

@{ Layout = "~/Views/Shared/_Layout.cshtml"; if (!Request["dropdown"].IsEmpty()) { Culture = UICulture = Request["dropdown"]; } 

}

dans la page d’index, la langue se charge correctement, mais à partir de là, quand je passe à la page suivante, il charge la langue par défaut, l’allemand mais les ressources lues à partir du fichier de ressources en anglais uniquement.

S’il vous plaît aidez-moi sur ce .. tout le monde

pour la configuration globale, je vous suggère d’append les lignes suivantes au fichier global.asax.cs: (dans cet exemple, la culture est définie sur Israël, en hébreu)

  protected void Application_Start() { //The culture value determines the results of culture-dependent functions, such as the date, number, and currency (NIS symbol) System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new System.Globalization.CultureInfo("he-il"); //System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = new System.Globalization.CultureInfo("he-il"); } 

Dans web.config j’ai commenté la ligne suivante à l’intérieur et cela a bien fonctionné pour moi.

       

Vous devez conserver les informations sur la culture actuelle quelque part (je recommande le cookie) et définir la culture de thread sur cette valeur de cookie (le cas échéant) – de préférence dans Application_BeginRequest de votre Global.asax .

 public ActionResult ChangeCulture(ssortingng value) { Response.Cookies.Add(new HttpCookie("culture", value)); return View(); } public class MvcApplication : HttpApplication { protected void Application_BeginRequest() { var cookie = Context.Request.Cookies["culture"]; if (cookie != null && !ssortingng.IsNullOrEmpty(cookie.Value)) { var culture = new CultureInfo(cookie.Value); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; } } }