我需要将一个国家代码转换为形容词。目前我正在使用RegionInfo,它可以获取国家名称。
RegionInfo ri = new RegionInfo(languages[0]);
subtitle = ri.NativeName;
如果国家代码是“en”,那么这将给我英格兰,但我想要的是“英语”。那么,我该如何获取国家形容词?谢谢。
在标准的 .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...
EnglishName
是一个属性而不是一个方法:(http://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo.englishname%28v=vs.110%29.aspx) - BridgeRegionInfo
,最好尝试使用CultureInfo
。CultureInfo c = new CultureInfo(languages[0]);
subtitle = c.DisplayName;
英格兰语
吗?:)
- Soner Gönül