2012-11-14 61 views
2

我有一個Web應用程序,它使用本地化爲法語加拿大客戶顯示英語或法語。用戶可以在地點上切換區域設置

根據用戶區域設置,它工作得很好。 但是,我們需要允許用戶在區域設置設置爲法語時切換回英語。

是否有可能覆蓋用戶區域設置,如果他願意?如果是的話......我如何編碼? (例如在佈局頁面上有一個說英文的鏈接,點擊這個會將它改回英文或回到法文)

另外,我正在使用資源文件來保存文本字符串,並使用相同的觀點。

回答

1

某處在你的代碼後,他們點擊一個按鈕來選擇語言:

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); 
    } 
} 
+0

我收到一個錯誤說會話狀態不是在這種情況下有效。 – twaldron

+0

看起來像剛剛在最初的請求或添加以下內容看起來已經解決了問題; if(HttpContext.Current!= null && HttpContext.Current.Session!= null){sessionOverrideLocal =(string)HttpContext.Current.Session [「customLocalization」]; } – twaldron

+1

謝謝。我沒有真正運行我寫的代碼:P我爲其他人更新了答案。 –

相關問題