【问题标题】:How do I tell my webpage to use a specific UI Culture?如何告诉我的网页使用特定的 UI 文化?
【发布时间】:2010-09-22 14:46:47
【问题描述】:

我可以告诉我的页面使用某个CultureInfo like

System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

上面的代码只设置了CultureInfo,而不是UICulture我如何告诉页面绕过浏览器所说的 strong> 并使用特定的,所以所有GlobalResource 都可以应用于正确的文化?

在上面的代码中,我得到的第一个浏览器语言是瑞典语:

System.Globalization.CultureInfo.CurrentUICulture.Name --> sv-SE
System.Globalization.CultureInfo.CurrentCulture.Name --> en-US

我需要设置CurrentUICulture,以便进行所有本地化,在这种情况下,使用英语而不是瑞典语,就像浏览器设置为:


(来源:balexandre.com

【问题讨论】:

    标签: c# localization asp.net-3.5 cultureinfo


    【解决方案1】:

    试试

    System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
    System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
    

    我在页面的 OnInit 中尝试过,它正确加载了资源。

    编辑:或者您可以尝试在 web.config 中设置它,如下所示:

    http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

    【讨论】:

    • 这是当前线程,如果我使用多个线程来处理东西,我需要在每次创建新线程时设置它:o( 试图在页面范围内获取一些东西或应用范围(不使用 web.config,可能是 global.asax)
    • 你是对的。请参阅我的编辑。我在 MSDN 上找到了一个很好的链接,展示了如何在 web.config 中进行设置。
    • Steve,也许你没有仔细阅读评论,我需要 而不 在 web.config 中!我知道在 Page 和 Web.Config 中设置 Page 声明是多么容易,但我希望以编程方式
    【解决方案2】:

    MSDN 网站上有一个示例说明了如何执行此操作:How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization

    基本上您可以设置当前执行线程的CurrentCultureCurrentUICulture 属性(完整代码示例请参见文章,这是摘录):

    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
    

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 2014-07-02
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多