如何在WinRT应用程序中获得实际语言?

是否有可能在Windows Phone上获得操作系统的实际语言? 我正在使用CultureInfo.CurrentCulture.TwoLetterIsoString ,但我总是收到en而不是正确的语言,这就是我的情况。

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

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

  • Thomas指出的Windows.Globalization.Language.CurrentInputMethodLanguageTag不适用于所有场景。 它仅返回显示用户键盘的语言。
  • 您还可以使用Windows.Globalization.ApplicationLanguages.Languages但它是用户语言首选项和应用程序支持的语言的组合。

对于大多数精确的用户首选语言,您需要使用Windows.System.UserProfile.GlobalizationPreferences.Languages[0]

您可以使用

 Windows.Globalization.Language.CurrentInputMethodLanguageTag 

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

根据MSDN的正确答案是:Windows.System.UserProfile.GlobalizationPreferences.Languages [0]

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

就目前我所记得的:

 Windows.Globalization.ApplicationPreferences.PreferredLanguage 

如果您创建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”)){………………..}