5

是否可以像在 Windows Phone 上一样获得操作系统的实际语言?我正在使用CultureInfo.CurrentCulture.TwoLetterIsoString,但我总是收到 en 而不是正确的语言,就de我而言。

那么如何在 WinRT 应用程序中获取实际语言呢?

4

7 回答 7

26

实际上有很多“有点错误”的答案。

  • Windows.Globalization.Language.CurrentInputMethodLanguageTag正如托马斯所指出的那样,并非在所有情况下都有效。它只返回显示用户键盘的语言。
  • 您也可以使用Windows.Globalization.ApplicationLanguages.Languages,但它是用户语言偏好和应用程序支持的语言的组合。

对于最准确的用户偏好语言,您需要使用Windows.System.UserProfile.GlobalizationPreferences.Languages[0].

于 2013-01-10T01:06:04.853 回答
4

您可以使用

Windows.Globalization.Language.CurrentInputMethodLanguageTag

得到实际的语言。如果您使用的是 Windows 8 的德语版本,它会返回例如 de-DE。

于 2012-10-09T12:13:08.513 回答
2

根据 MSDN,正确答案是:

Windows.System.UserProfile.GlobalizationPreferences.Languages[0]

这应该是用户最喜欢的语言。

于 2013-02-28T12:05:14.163 回答
1

就目前我所记得的:

Windows.Globalization.ApplicationPreferences.PreferredLanguage
于 2012-10-09T12:05:21.090 回答
1

如果您创建 HTML5/javascript Windows 应用程序。你可以使用这个:

var language = window.navigator.userLanguage || window.navigator.language;
alert(language);
于 2012-10-09T17:02:46.883 回答
0
String topUserLanguage = GlobalizationPreferences.Languages[0];
Windows.Globalization.Language userLanguage = new Windows.Globalization.Language(topUserLanguage);

if (userLanguage.Script.Equals("Arab") || userLanguage.Script.Equals("Hebr"))
{
....................
}
于 2013-01-04T05:07:20.943 回答