获取本地化区域中文化名称的显示名称

时间:2016-06-30 07:45:30

标签: c# cultureinfo

我正在开发一个多语言的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)
    

2 个答案:

答案 0 :(得分:0)

我的意思是,DisplayName取决于这种文化:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");

答案 1 :(得分:0)

使用NativeName而不是DisplayName。