2012-10-09 29 views
5

Windows PhoneのようにOSの実際の言語を取得することは可能ですか?私はCultureInfo.CurrentCulture.TwoLetterIsoStringを使用していますが、私はいつもenを受け取り、正しい言語ではありません。私の場合はdeです。WinRTアプリケーションで実際の言語を取得する方法は?

WinRTアプリケーションでどのように実際の言語を取得できますか?

Windows.Globalization.ApplicationPreferences.PreferredLanguage 

答えて

6

あなたが実際の言語を取得するために

Windows.Globalization.Language.CurrentInputMethodLanguageTag 

を使用することができます。私が覚えている限りでは

+1

実際には、現在のキーボード言語が返され、ユーザーの地域設定の選択は返されません!WinRTはCurrentCultureに直接相当しませんが、Windows.Globalization'名前空間は代替 –

1

。 Windows 8のドイツ語版を使用している場合は、de-DEが返されます。

+0

これはUWPにはありません:( –

1

HTML5/javascript Windows Appを作成する場合は、これを使用することができます:

var language = window.navigator.userLanguage || window.navigator.language; 
alert(language); 
0

文字列topUserLanguage = GlobalizationPreferences.Languages [0]; Windows.Globalization.Language userLanguage = new Windows.Globalization.Language(topUserLanguage);

if(userLanguage.Script.Equals( "Arab")|| userLanguage.Script.Equals( "Hebr")) { .................. .. }

26

実際には、この種の「種類の間違った」回答が多数あります。

  • Windows.Globalization.Language.CurrentInputMethodLanguageTagとして指摘されているように、すべてのシナリオでは機能しません。ユーザーのキーボードが表示される言語のみを返します。
  • Windows.Globalization.ApplicationLanguages.Languagesも使用できますが、ユーザーの言語設定とアプリケーションのサポート言語の組み合わせです。

最も魅力的なユーザー設定言語の場合は、Windows.System.UserProfile.GlobalizationPreferences.Languages[0]を使用する必要があります。 MSDNに正解をacording

+0

"Windows.System.UserProfile.GlobalizationPreferences.Languages [0]"は現在使用しています。 – Quincy

+0

@ Mo0glesあなたは精緻化できますか? – Quincy

2

は次のとおりです。Windows.System.UserProfile.GlobalizationPreferences.Languages [0]

これは、ユーザー最もれる好ましい言語でなければなりません。

関連する問題