2012-03-14 34 views
5

我想知道System.Globalization.CultureInfo.CurrentCulture从何处读取其值的设置或位置。CultureInfo.CurrentCulture从哪里读取文化

我正在使用Windows 7笔记本电脑,并将我的系统的区域和日期时间设置更改为美国。

我下得了

<globalization culture="en-US" /> 

感谢

回答

6

MSDN

文化是执行的线程的属性。这个只读属性相当于检索由Thread.CurrentCulture属性返回的CultureInfo对象。当一个线程启动时,其文化最初是通过调用Windows的GetUserDefaultLocaleName函数来确定的。

换句话说,它是基于线程,女巫有一个上下文...在ASP.NET背景下,来自如使用Server Variables或在客户端浏览器第一使用的语言环境系统设置一切。

在这个Web上下文你可以使用上HTTP_ACCEPT_LANGUAGEServer.Variables方法它,你会得到这样的:

en-US,en;q=0.8,pt-PT;q=0.6,pt;q=0.4 

女巫指出客户端浏览器有3种语言集,其中第一个是en-US

System.Globalization一切都来自于系统定义就像下面显示的图像:以上

enter image description here

代码:

<p> 
    <pre>System.Globalization.CultureInfo.CurrentCulture</pre> 
    is @System.Globalization.CultureInfo.CurrentCulture.EnglishName 
</p> 

无论是使用什么浏览器时,定义为System.Globalization将始终来自操作系统定义

enter image description here

+0

谢谢Balexandre,这似乎是很好的信息。但我刚刚检查了我的浏览器语言环境设置和en-US(我正在使用firefox,并且我在about:config下选中了设置general.useragent.locale),我的系统日期时间和区域设置也设置为en-US。但是当我检查System.Globalization.CultureInfo.CurrentCulture时,我仍然得到了en-IN。你有什么想法我错了吗? – TechnicalSmile 2012-03-14 08:19:08

+0

添加图片以便更好地理解... – balexandre 2012-03-14 10:33:41

2

花费8个小时后 - 找出一个解决方案凭借罗纳德 - CultureInfo values differ between applications for the same culture. Is this a bug?

事实证明,区域设置存储每个用户在Windows中。 这是我应该知道的。更新 应用程序池以便自己运行,以便在 应用程序中产生相同的结果。

公平地说,网络服务( 帐号运行的应用程序池)的错误值是 。我甚至不确定我会如何纠正这种情况。

编辑:

如果您需要更新保留帐户的区域设置。您有 有两个选项。

Control Panel > Regional Settings > Click the administrative tab and then select "Copy Settings". 

在一个启动画面,确保 选中“欢迎屏幕和系统帐户”。旧版本的 Windows相似,我相信。 用于支撑。注册表:HKEY_USERS> SID ...>控制面板>国际。网络服务的安全标识符是:SID: S-1-5-20。

确保您重新启动应用程序池以使设置生效。

我做了#1 - 它为我做了一个小把戏!

+0

非常感谢!备用了我很多时间:) – 2015-02-02 14:20:19

相关问题