是否有可能在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'命名空间确实提供了替代方法 –