是否有可能在Windows Phone上獲得OS的實際語言?我使用的是CultureInfo.CurrentCulture.TwoLetterIsoString
,但我總是收到en,而不是正確的語言,在我的情況下是de
。如何在WinRT應用程序中獲得實際的語言?
那麼我怎麼才能在WinRT應用程序中獲得實際的語言呢?
是否有可能在Windows Phone上獲得OS的實際語言?我使用的是CultureInfo.CurrentCulture.TwoLetterIsoString
,但我總是收到en,而不是正確的語言,在我的情況下是de
。如何在WinRT應用程序中獲得實際的語言?
那麼我怎麼才能在WinRT應用程序中獲得實際的語言呢?
您可以使用
Windows.Globalization.Language.CurrentInputMethodLanguageTag
獲得實際的語言。例如,如果您使用的是Windows 8的德語版本,則返回例如德DE。
至於我記得:
Windows.Globalization.ApplicationPreferences.PreferredLanguage
在UWP上不存在:( –
如果您創建HTML5/javascript Windows應用程序。你可以使用這個:
var language = window.navigator.userLanguage || window.navigator.language;
alert(language);
String topUserLanguage = GlobalizationPreferences.Languages [0]; Windows.Globalization.Language userLanguage = new Windows.Globalization.Language(topUserLanguage);
if(userLanguage.Script.Equals(「Arab」)|| userLanguage.Script.Equals(「Hebr」)) { .................. .. }
實際上有很多「種類錯誤」的答案。
Windows.Globalization.Language.CurrentInputMethodLanguageTag
正如托馬斯指出的那樣,在所有場景下都不能正常工作。它只返回用戶鍵盤顯示的語言。Windows.Globalization.ApplicationLanguages.Languages
,但它是用戶語言首選項和應用程序支持的語言的組合。對於大多數非常敏感的用戶偏好語言,您需要使用Windows.System.UserProfile.GlobalizationPreferences.Languages[0]
。
acording MSDN的正確答案是:Windows.System.UserProfile.GlobalizationPreferences.Languages [0]
這應該是大多數用戶喜歡的語言。
實際上,它返回當前鍵盤語言,而不是用戶區域設置選項!WinRT沒有與CurrentCulture直接等價,但是'Windows.Globalization'命名空間確實提供了替代方法 –