是否有可能在Windows Phone上获得操作系统的实际语言?我正在使用CultureInfo.CurrentCulture.TwoLetterIsoString
,但我总是接受en而不是正确的语言,在我的情况下是de
。
那么如何在WinRT应用程序中获取实际语言?
答案 0 :(得分:26)
实际上有很多“错误的”答案。
Windows.Globalization.Language.CurrentInputMethodLanguageTag
将无法在所有情景中发挥作用。它仅返回显示用户键盘的语言。 Windows.Globalization.ApplicationLanguages.Languages
,但它是用户语言首选项和应用程序支持的语言的组合。对于大多数精确的用户偏好语言,您需要使用Windows.System.UserProfile.GlobalizationPreferences.Languages[0]
。
答案 1 :(得分:6)
您可以使用
Windows.Globalization.Language.CurrentInputMethodLanguageTag
获取实际语言。如果您使用的是Windows 8的德语版本,它将返回例如de-DE。
答案 2 :(得分:2)
根据MSDN的正确答案是:Windows.System.UserProfile.GlobalizationPreferences.Languages [0]
这应该是用户最喜欢的语言。
答案 3 :(得分:1)
据我记得:
Windows.Globalization.ApplicationPreferences.PreferredLanguage
答案 4 :(得分:1)
如果您创建HTML5 / javascript Windows应用程序。你可以用这个:
var language = window.navigator.userLanguage || window.navigator.language;
alert(language);
答案 5 :(得分:0)
String topUserLanguage = GlobalizationPreferences.Languages [0]; Windows.Globalization.Language userLanguage = new Windows.Globalization.Language(topUserLanguage);
if(userLanguage.Script.Equals(“Arab”)|| userLanguage.Script.Equals(“Hebr”)) { .................... }
答案 6 :(得分:0)
Windows社区工具包现在为此提供了一个简单的API:https://docs.microsoft.com/en-us/dotnet/api/microsoft.toolkit.uwp.helpers.systeminformation.culture?view=win-comm-toolkit-dotnet-stable#Microsoft_Toolkit_Uwp_Helpers_SystemInformation_Culture
用法:
using Microsoft.Toolkit.Uwp.Helpers;
var cultureInfo = SystemInformation.Instance.Culture;