我有一个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的开发服务器构建。
答案 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)
查看nicodemus13对What is the difference between CurrentCulture and CurrentUICulture properties of CultureInfo in .NET?的评论
请注意,微软并不明智地将美国英语和(英国)英语或其他英语的UI文化分开。英语没有MUI,这意味着CurrentUICulture将永远是英语机器上的en-US,无论CurrentCulture是什么,可以设置为本地化区域设置。