2013-02-26 18 views
2

我想在WinRT中使用Current Culture格式化日期時間值。但目前的文化財產似乎並不尊重系統文化。WinRT當前的文化是錯誤的

我嘗試了以下兩個屬性,

System.Globalization.CultureInfo.CurrentCulture.DisplayName 
System.Globalization.CultureInfo.CurrentUICulture.DisplayName 

兩個給英語(美國),即使我改變了區域控制面板中。但是這對WPF來說工作得很好。我究竟做錯了什麼?

+0

你能提供你真正想要做的樣本代碼嗎? – Betty 2013-02-26 10:59:09

+0

另請參閱http://stackoverflow.com/q/13743704/24874 – 2015-08-22 18:14:51

回答

1

WinRT使用Windows.Globalisation命名空間中公開的API。看看ApplicationLanguages類

http://msdn.microsoft.com/en-us/library/windows/apps/hh972395.aspx

此類公開語言,ManifestLanguages和PrimaryLanguageOveride性能

+0

我試過你的答案。但它仍然給我的「EN-US」。我已經通過控制面板區域設置爲我設置區域格魯吉亞(格魯吉亞)。我曾嘗試下面的代碼, Windows.Globalization.Language.CurrentInputMethodLanguageTag 新Windows.Globalization。 NumberFormatting.DecimalFormatter()。GeographicRegion – Jawahar 2013-02-26 11:08:07

+0

什麼是輸入語言?這是什麼使用 – 2013-02-26 11:08:59

1

爲了得到InvariantCulture的設置,我們可以使用,

「ApplicationLanguages.PrimaryLanguageOverride = CultureInfo.InvariantCulture。 TwoLetterISOLanguageName;」

這對我有效。

+1

請不要這樣做。這是一個非常糟糕的主意。PrimaryLanguageOverride旨在支持用戶選擇特定語言的應用程序,可能與他們的用戶語言列表中指定的語言的一般偏好不匹配。此設置在應用程序的各個運行中保持不變。 – 2014-10-01 17:51:03

1

現代應用程序利用用戶語言列表來確定默認應用程序語言應該是什麼,應用程序語言用於初始化CurrentCulture和CurrentUICulture。桌面應用程序(wpf)將這些初始化爲用戶的默認UI語言和語言環境。

以下兩件事情之一正在發生:您的應用程序正在使用一組有限的語言資源進行構建,該語言資源的默認值爲en-US,並且您的用戶語言列表中未包含任何這些語言,或者en-US是您的用戶語言列表中的第一種語言,您的應用程序中有資源。