如何确定默认的Culture和UICulture?

时间:2017-02-08 13:58:29

标签: c# asp.net .net culture system.web

可以覆盖InitializeCulture()方法,您可以轻松选择自己的Page.CulturePage.UICulture。您还可以在Web.config中添加全球化部分,或在BasePage中设置文化。但是,如何确定和设置这些属性的默认值呢? UICulture是从浏览器请求的accept-header中获取的吗?是从服务器取出的文化?

请注意,我不是要求difference between these two properties,而是在我的应用程序中没有设置默认值的地方或时间。那么我的应用程序之外的哪些浏览器,用户,服务器,...设置会影响该值?

1 个答案:

答案 0 :(得分:1)

UICulturePage.CurrentThread.CurrentUICulture的快捷方式,根据docs

  

UI文化指定应用程序支持用户输入和输出所需的资源,默认情况下与操作系统文化相同。

对于Culture,它再次是正在运行的线程的属性,但此处的默认值是以更复杂的方式确定的here。简短摘要:

  1. 检查应用程序域中的DefaultThreadCurrentCulture属性
  2. 如果我们在.Net 4.6或更高版本中并且当前线程是由其他线程调用的任务,请尝试获取调用者的文化
  3. 通过调用Windows GetUserDefaultLocaleName函数(再次使用OS)