2013-01-09 64 views
2

我有一个Silverlight应用程序和相应的ASP.Net应用程序托管它。为什么CurrentCulture和CurrentUICulture有所不同?

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

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

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

我已经使用Fiddler检查浏览器设置,它发送Accept-Language头值作为en-GB。

这是我需要改变的Web服务器上的一些设置?我在开发服务器中使用Visual Studio的内部版本。

+0

[CurrentCulture和CurrentUICulture属性的.NET中的CultureInfo有什么区别?](http://stackoverflow.com/questions/329033/what-is-the-difference-between-currentculture- – nhahtdh

回答

1

首先,澄清:

的CurrentCulture为的DateFormats,数字,货币等(未在actualy语言)。 CurrentUICulture是UI的语言。

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

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

是的,我已经手动设置了这些值,以及RootVisual的Language属性。我只是认为框架会自动检测主机操作系统的文化,并自动设置它们。 – BenCr

+0

那么,即使你正确地设置了它们,之后又错了吗?或者是什么问题? – Remy

+0

我将它们硬编码为en-GB,因为它们的CurrentUICulture是en-US。我认为插件/ .net框架检测到操作系统的当前文化,所以我想知道为什么我必须设置它们。为什么他们不是根据我的操作系统设置自动设置的。 – BenCr

相关问题