4

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

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

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

有任何想法吗?我迷路了。

4

3 回答 3

17

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

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

您只需设置以下 2 行:

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

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

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

于 2013-06-11T18:55:50.210 回答
3

你可以试试这个:

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

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

于 2013-06-11T18:57:08.603 回答
1
  • 如果要为整个应用程序设置它,可以将其设置Global.asax

    Thread.Current.Culture = 新 System.Globalization.CultureInfo("fr-FR");

于 2013-06-11T18:58:02.483 回答