2013-02-08 74 views
0

我已經完成了一些ressearch,並且執行此操作的唯一方法似乎是覆蓋Web應用程序的每個頁面中的InitializeCulture方法。事情是,我的應用程序有80頁,所以我想知道是否有另一種方法來做到這一點會更容易。更改您的Web應用程序的語言c#

protected override void InitializeCulture() 
    { 
     if (Session["CultureLang"] != null) 
     { 
      string selectedLanguage = Session["CultureLang"].ToString(); 
      if (selectedLanguage == "True") 
       selectedLanguage = "en-US"; 
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage); 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage); 
     } 
     base.InitializeCulture(); 
    } 

我有這樣的web.config文件:

<globalization culture="auto" uiCulture="auto" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8"/> 

注:我的按鈕來改變語言是一個自定義的夏精,如果改變任何東西。

+0

您使用該框架? – bas 2013-02-08 20:44:35

+0

爲什麼不直接在global.asax中的Application_AcquireRequestState中設置文化? – aquinas 2013-02-09 01:07:09

回答

2

如何添加包含文化意識代碼的基地class,然後您的80多個網頁從此基類繼承。

喜歡的東西:

public abstract class CultureAwarePage : Page 
{ 
    protected override void InitializeCulture() { ... } 
} 

public partial class MyPage1 : CultureAwarePage 
{ 
    ... 
} 
+0

沒有想到這一點,這是我第一次實際上必須配置文化變化(通常在大項目中,它已經實現,我只需要使用currentCulture屬性)。 我會在星期一嘗試。 – 2013-02-08 21:00:38

+0

感謝,方式更容易! – 2013-02-11 15:40:53

相關問題