2013-02-08 98 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

相关问题