如何获取国家形容词?(该问题涉及IT技术)

3

我需要将一个国家代码转换为形容词。目前我正在使用RegionInfo,它可以获取国家名称。

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

如果国家代码是“en”,那么这将给我英格兰,但我想要的是“英语”。那么,我该如何获取国家形容词?谢谢。

把“ish”加在每个词的末尾就好了。 ;) - ED-209
@EdPitt 但它会是英格兰语吗?:) - Soner Gönül
1
@SonerGönül 英国式,美国式,土耳其式。人们都懂的。 - ED-209
你确定每个国家都有一个适用的表格吗(即使假设该国只使用一种语言)? - Damien_The_Unbeliever
2个回答

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。该页面为英文维基百科上的国家和民族形容词及名称列表,与IT技术无关。

EnglishName 是一个属性而不是一个方法:(http://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo.englishname%28v=vs.110%29.aspx) - Bridge
哦,是的。糟糕了。修好了。 - Alex Walker

1
不要使用RegionInfo,最好尝试使用CultureInfo
你可以像下面这样尝试:
CultureInfo c = new CultureInfo(languages[0]);
subtitle = c.DisplayName;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接