我有一個Web應用程序,它使用本地化爲法語加拿大客戶顯示英語或法語。用戶可以在地點上切換區域設置
根據用戶區域設置,它工作得很好。 但是,我們需要允許用戶在區域設置設置爲法語時切換回英語。
是否有可能覆蓋用戶區域設置,如果他願意?如果是的話......我如何編碼? (例如在佈局頁面上有一個說英文的鏈接,點擊這個會將它改回英文或回到法文)
另外,我正在使用資源文件來保存文本字符串,並使用相同的觀點。
我有一個Web應用程序,它使用本地化爲法語加拿大客戶顯示英語或法語。用戶可以在地點上切換區域設置
根據用戶區域設置,它工作得很好。 但是,我們需要允許用戶在區域設置設置爲法語時切換回英語。
是否有可能覆蓋用戶區域設置,如果他願意?如果是的話......我如何編碼? (例如在佈局頁面上有一個說英文的鏈接,點擊這個會將它改回英文或回到法文)
另外,我正在使用資源文件來保存文本字符串,並使用相同的觀點。
某處在你的代碼後,他們點擊一個按鈕來選擇語言:
Session["customLocalization"] = "de-DE"; //Or whatever language
在您的Global.asax
protected void Application_BeginRequest(object sender, EventArgs e)
{
String sessionOverrideLocale;
if (HttpContext.Current != null && HttpContext.Current.Session != null)
{
sessionOverrideLocal = (String) HttpContext.Current.Session["customLocalization"];
}
if (sessionOverrideLocale != null)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sessionOverrideLocale);
Thread.CurrentThread.CurrentCulture = new CultureInfo(sessionOverrideLocale);
}
}
是的,這是可能的,但我目前還沒有訪問我最近在代碼中允許用戶更改其當前渲染區域的代碼。
這是一篇博文,詳細介紹瞭如何做到這一點。他有一個我認爲使用MVC3的較舊的帖子,然後這個較新的帖子是從MVC4的角度編寫的,所以這應該包括你。
我希望它能幫助:
http://geekswithblogs.net/shaunxu/archive/2012/09/04/localization-in-asp.net-mvc-ndash-upgraded.aspx
我收到一個錯誤說會話狀態不是在這種情況下有效。 – twaldron
看起來像剛剛在最初的請求或添加以下內容看起來已經解決了問題; if(HttpContext.Current!= null && HttpContext.Current.Session!= null){sessionOverrideLocal =(string)HttpContext.Current.Session [「customLocalization」]; } – twaldron
謝謝。我沒有真正運行我寫的代碼:P我爲其他人更新了答案。 –