如何获得国家的形容词?

时间:2013-11-19 15:33:47

标签: c# asp.net

我需要将国家/地区代码转换为其形容词。我目前正在使用RegionInfo来获取国家名称。

RegionInfo ri = new RegionInfo(languages[0]);
subtitle = ri.NativeName;

如果国家代码是'en',这将给我英格兰,但我想要的是'英语'。

那么,我怎样才能获得国家的形容词?

由于

2 个答案:

答案 0 :(得分:4)

标准.NET API中没有包含有关公民命名形容词的信息的类。

但是,您可以使用CultureInfo类将国家/地区代码转换为口语语言列表 - 从该列表中获取任意元素通常会给出正确答案(但总是,如“中文(简体)”)

例如:

var cultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures).Where(c => c.Name.EndsWith("CH"));
var cultureInfo = cultureInfos.SingleOrDefault();
string language = cultureInfo.EnglishName;

但我担心,对所有文化来说正确的唯一选择是创建自己的映射。

Dictionary<string, string> adjectiveMap = new Dictionary<string, string>();
adjectiveMap.Add("en", "English");
adjectiveMap.Add("cn", "Chinese");
// etc. etc...

如果您准备接受此任务,请查看此Wiki页面! http://en.wikipedia.org/wiki/List_of_adjectival_and_demonymic_forms_for_countries_and_nations

答案 1 :(得分:1)

请勿使用RegionInfo,最好尝试使用CultureInfo 在那里你可以尝试如下:

CultureInfo c = new CultureInfo(languages[0]);
subtitle = c.DisplayName;