2016-06-30 94 views
2

多言語asp.net MVCアプリケーションを開発しています。グリッドでは、私は文化のリストを表示しようとしています。これらのデータは、ユーザー言語(現在のスレッド言語)で表示する必要があります。ローカライズされたカルチャのカルチャ名の表示名を取得する

fr-fr 
en-gb 
fr-ca 

そして、私はこれをやっている:

var cultureOne = new CultureInfo("fr-fr").DisplayName 
var cultureTwo = new CultureInfo("en-gb").DisplayName 
var cultureThird = new CultureInfo("fr-ca").DisplayName 

そのコードの問題は、表示名のプロパティではないされていることを

は例えば、私は言語コードのリストを取得しますローカライズされています(これはユーザーの文化に依存しません)が、サーバーの文化に応じて推測します。

だから私のマシンはフランス語であると、私はいつも(私は英語で午前かどうか、フランス語、イタリア語...)と同じ結果を得ています:

français (France) 
Anglais (Royaume-Uni) 
français (Canada) 

私の目標は、次のような結果を得ることです。

  • 私はフランス語だ場合:

    français (France) 
    Anglais (Royaume-Uni) 
    français (Canada) 
    
  • 私は英語で午前場合:

    french (France) 
    English (United Kingdom) 
    french (Canada) 
    
  • 私はイタリア語で午前場合:

    francese (Francia) 
    inglese (Regno Unito) 
    francese(Canada) 
    
  • 1は私が何を意味するか、DisplayNameには、この文化に依存すること
+2

Application.CurrentCultureを英語に設定するのはどうですか?またはThread.CurrentThread.CurrentCultureを英語にもしますか? –

+0

これは私の現在の言語を交換するときに既に行われています。たとえば、私がitalienに切り替えると、このThread.CurrentThread.CurrentCulture = new CultureInfo( "it-it")を実行しています – user2443476

+1

http://stackoverflow.com/questions/2432813/how-to-translate-cultureinfo-language名前 – filhit

答えて

0

:代わりのDisplayNameの

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us"); 
関連する問題