我正在开发一个多语言的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)
答案 0 :(得分:0)
我的意思是,DisplayName取决于这种文化:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");
答案 1 :(得分:0)
使用NativeName而不是DisplayName。