2016-10-03 16 views
0

次の問題を解決する必要があります。シンプルなようですが、私は立ち往生しています。特定の言語の国名を取得してください。システム全体の選択言語以外の言語

私は、国の地理的地域コードを入力とし、国の名前をアプリケーションの表示言語で返すコンバータを作成しています。

(ターゲット機能)

アプリケーション言語: "FR"

入力: "米国は"

出力: "ETATSユニス"

この目的を達成するために私が使用して次のコード。

public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     string countryCode = (string)value;      
     var country = new Windows.Globalization.GeographicRegion(countryCode); 
     return country.DisplayName; 

    } 

問題は、選択したシステム全体の国で国が返されることです。例えば。

例2

システム言語: "EN-US"(PrimaryLanguageOverride経由で設定)

アプリケーション言語: "FR"

入力: "US"

出力:米国

私は、何が起こるかは、Windows.Globalization.GeographicRegionクラスがアプリケーションのカルチャ設定ではなく、システム全体の設定からのカルチャデータを収集します。

誰かがこれに対する回避策を知っていますか?

コンバータが実行されるスレッドに異なるカルチャを設定する方法はありますか?

+1

システムのデフォルト設定をフランス語とオランダ語の両方に変更したため、バグかもしれません。 – Bart

+0

@Bartこれをチェックしていただきありがとうございます。あなたは何を試して何を得たのか教えていただけますか? – Corcus

答えて

0

GeographicRegion.DisplayNameは、領域を識別するためのユーザへの表示に適したローカライズされた文字列を取得できます。ただし、この機能を使用するには、対応する言語パックをインストールする必要があります。例えば

は、フランス語で地域を表示するために、我々は&言語→リージョン&言語→設定→タイム言語の追加を開くことによって、フランス語の言語パックをインストールする必要があります。
enter image description here

フランス語をデフォルト言語として設定する必要はないため、システム言語はまだ英語です。

フランス語パックをインストールした後、コードでローカライズされたリージョン名をフランス語で返すことができるようになります。たとえば、「US」と入力すると、出力は「États-Unis」になります。

+0

ジェイZuo私の質問に答えるためにありがとう。実際には、言語パックをインストールした後に動作します。しかし、私はユーザーにシステムにインストールされていない表示言語を選択するオプションを提供するアプリケーションを作成しています。 言語パックがインストールされていることを知らずにWindows.Globalization APIを使用して地理的地域コードに応じて国のローカライズされた名前を取得する方法はありますか? – Corcus

+0

@Corcus Windows.Globalization APIの使用中に対応する言語パックをインストールしないと、ローカライズされた名前を取得できません。言語パックは、ローカリゼーションをサポートするために使用する.reswリソースファイルのようなものです。それがなければ、APIは対応するローカライズされた名前を取得できません。 –

+0

@Corcusサポートしたい地域コードの数がわかりません。それほど多くない場合は、それらをリソースファイルに入れて、[UI文字列をリソースに入れます](https://msdn.microsoft.com/en-us/windows/uwp/globalizing/put-u-strings-リソースへ)。それ以外の場合は、[Microsoft Translator API](https://www.microsoft.com)の[GetLanguageNamesメソッド](https://msdn.microsoft.com/en-us/library/ff512414.aspx)のようなオンラインサービスを使用できます。 /en-us/translator/getstarted.aspx)。 –

関連する問題