为什么CurrentCulture和CurrentUICulture有所不同?

时间:2013-01-09 21:53:28

标签: silverlight globalization

我有一个Silverlight应用程序和托管它的相应ASP.Net应用程序。

我想使用检测到的文化设置来格式化Silverlight应用程序中的日期,但我认为它没有正确检测系统设置(或者它使用了一些我不知道的基于它的设置)。

当我检查线程上的文化值时(在ASP.Net应用程序和Silverlight中),CurrentCulture正确设置为en-GB但CurrentUICulture是en-US。

我在Windows 8上运行,其位置和语言都设置为en-GB。

我使用Fiddler检查浏览器设置,并将Accept-Language标头值发送为en-GB。

我需要更改Web服务器上的某些设置吗?我正在使用Visual Studio的开发服务器构建。

2 个答案:

答案 0 :(得分:1)

首先,澄清一下:

CurrentCulture适用于Dateformats,Numbers,Currencies等(不是实用语言)。 CurrentUICulture是UI的语言。

您是否在线程中设置了CurrentUICulture和CurrentCulture?

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de-ch");
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("de-ch");

答案 1 :(得分:0)

查看nicodemus13What is the difference between CurrentCulture and CurrentUICulture properties of CultureInfo in .NET?的评论

  

请注意,微软并不明智地将美国英语和(英国)英语或其他英语的UI文化分开。英语没有MUI,这意味着CurrentUICulture将永远是英语机器上的en-US,无论CurrentCulture是什么,可以设置为本地化区域设置。