我想知道System.Globalization.CultureInfo.CurrentCulture
从何处读取其值的设置或位置。CultureInfo.CurrentCulture从哪里读取文化
我正在使用Windows 7笔记本电脑,并将我的系统的区域和日期时间设置更改为美国。
我下得了
<globalization culture="en-US" />
感谢
我想知道System.Globalization.CultureInfo.CurrentCulture
从何处读取其值的设置或位置。CultureInfo.CurrentCulture从哪里读取文化
我正在使用Windows 7笔记本电脑,并将我的系统的区域和日期时间设置更改为美国。
我下得了
<globalization culture="en-US" />
感谢
的MSDN说
文化是执行的线程的属性。这个只读属性相当于检索由Thread.CurrentCulture属性返回的CultureInfo对象。当一个线程启动时,其文化最初是通过调用Windows的GetUserDefaultLocaleName函数来确定的。
换句话说,它是基于线程,女巫有一个上下文...在ASP.NET背景下,来自如使用Server Variables
或在客户端浏览器第一使用的语言环境系统设置一切。
在这个Web上下文你可以使用上HTTP_ACCEPT_LANGUAGE
的Server.Variables
方法它,你会得到这样的:
en-US,en;q=0.8,pt-PT;q=0.6,pt;q=0.4
女巫指出客户端浏览器有3种语言集,其中第一个是en-US
。
从System.Globalization
一切都来自于系统定义就像下面显示的图像:以上
代码:
<p>
<pre>System.Globalization.CultureInfo.CurrentCulture</pre>
is @System.Globalization.CultureInfo.CurrentCulture.EnglishName
</p>
无论是使用什么浏览器时,定义为System.Globalization
将始终来自操作系统定义
它使用了Windows GetUserDefaultLocaleName
功能我的代码使用下面在web.config中设置工作。
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture.aspx
花费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 - 它为我做了一个小把戏!
非常感谢!备用了我很多时间:) – 2015-02-02 14:20:19
在ASP.NET的情况下,从
HKEY_USERS\S-1-5-20\Control Panel\International\
S-1-5-20是网络服务 “用户” 的安全标识符(http://support.microsoft.com/kb/243330)
对于其它类型的应用程序,请参阅GetUserDefaultLocaleName函数(https://msdn.microsoft.com/en-us/library/windows/desktop/dd318136%28v=vs.85%29.aspx)
的文档有关更改S-1-5-20区域设置的简单GUI方法,请参阅sitecorebasics的答案
谢谢Balexandre,这似乎是很好的信息。但我刚刚检查了我的浏览器语言环境设置和en-US(我正在使用firefox,并且我在about:config下选中了设置general.useragent.locale),我的系统日期时间和区域设置也设置为en-US。但是当我检查System.Globalization.CultureInfo.CurrentCulture时,我仍然得到了en-IN。你有什么想法我错了吗? – TechnicalSmile 2012-03-14 08:19:08
添加图片以便更好地理解... – balexandre 2012-03-14 10:33:41