如何在asp.net中强制培养文化?

时间:2013-06-11 18:53:30

标签: c# asp.net .net globalization

我希望能够在运行时设置文化。例如:

protected void Page_Load(object sender, EventArgs e)
{
    Page.Culture = "fr-FR";
    Page.UICulture = "fr";
}

但这没有任何影响。我正在使用资源文件进行翻译。如果我改变浏览器的语言它可以正常工作,但我希望用户也能够选择语言。所以在这种情况下,用户希望使用法语作为语言。

有什么想法吗?我输了。

3 个答案:

答案 0 :(得分:16)

如果您正在创建允许用户更改语言的网站,那么您需要在Global.asax方法的Application_BeginRequest文件中执行此操作。

每个请求都将具有文化集。

您只需设置以下两行:

    Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR");
    Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-FR");

第一行将设置数字/日期/等格式。

第二行指定要加载的资源本地化 - 包含已翻译的内容。

答案 1 :(得分:3)

你可以试试这个:

 Thread.CurrentThread.CurrentCulture = 
            CultureInfo.CreateSpecificCulture("en-US");
 Thread.CurrentThread.CurrentUICulture = new 
            CultureInfo("en-US");

有关详细信息,请参阅MSDN中的这篇文章。

答案 2 :(得分:1)

  • 如果您想为整个应用程序设置它,可以在Global.asax中将其设置为

    Thread.Current.Culture = New System.Globalization.CultureInfo(“fr-FR”);