Windows Phone のような OS の実際の言語を取得することは可能ですか? 私は を使用していますが、私の場合CultureInfo.CurrentCulture.TwoLetterIsoString
は正しい言語ではなく、常に en を受け取ります。de
では、WinRT アプリで実際の言語を取得するにはどうすればよいでしょうか?
Windows Phone のような OS の実際の言語を取得することは可能ですか? 私は を使用していますが、私の場合CultureInfo.CurrentCulture.TwoLetterIsoString
は正しい言語ではなく、常に en を受け取ります。de
では、WinRT アプリで実際の言語を取得するにはどうすればよいでしょうか?
これには、実際には多くの「間違った」答えがあります。
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]
これは、ユーザーが最も好む言語にする必要があります。
HTML5/javascript Windows アプリを作成する場合。これを使用できます:
var language = window.navigator.userLanguage || window.navigator.language;
alert(language);
私が覚えている限りでは:
Windows.Globalization.ApplicationPreferences.PreferredLanguage
String topUserLanguage = GlobalizationPreferences.Languages[0];
Windows.Globalization.Language userLanguage = new Windows.Globalization.Language(topUserLanguage);
if (userLanguage.Script.Equals("Arab") || userLanguage.Script.Equals("Hebr"))
{
....................
}