我需要将国家/地区代码转换为其形容词。我目前正在使用RegionInfo来获取国家名称。
RegionInfo ri = new RegionInfo(languages[0]);
subtitle = ri.NativeName;
如果国家代码是'en',这将给我英格兰,但我想要的是'英语'。
那么,我怎样才能获得国家的形容词?
由于
答案 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;