我想知道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