每个国家/地区的 CultureInfo 名称
Posted
技术标签:
【中文标题】每个国家/地区的 CultureInfo 名称【英文标题】:CultureInfo name for each country 【发布时间】:2011-05-19 11:44:53 【问题描述】:我有两个字母代码(例如“US”)和三个字母代码(例如“USA”)的国家/地区列表。 我只想分配所有 239 个国家/地区的语言环境代码,例如 en-US(不是 es-US)。
我尝试了迭代:
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
然后:
var country = countries.Where(c => c.CodeIso3 == region.ThreeLetterISORegionName).FirstOrDefault();
它不起作用,太多覆盖。
如何将 239 个国家代码分配给主要(或默认)语言?
谢谢
【问题讨论】:
【参考方案1】:没有办法做到这一点。那是因为您心目中的许多国家/地区都没有默认语言之类的东西。 例如,美国没有官方语言。尽管其大多数公民使用英语,但它不是默认。另一个有趣的例子是瑞士。其公民使用法语、德语、意大利语和罗曼语。这些都不是默认。
这就是为什么没有这样的 API 的原因。
编辑:
正如我之前所说,在许多国家/地区没有像 默认 语言这样的想法。我什至举了一个国家的例子,该国家拥有一种以上的主要语言(德语和法语)。对于所有仍然无法理解这真的没有意义的你们,我会告诉你们如何猜测最可能的语言:
Common Locale Data Repository Territory-Language Information
如果您仍然无法理解为什么限制每个国家/地区使用一种语言可能不是最好的主意,我放弃了。
【讨论】:
以上是关于每个国家/地区的 CultureInfo 名称的主要内容,如果未能解决你的问题,请参考以下文章
为啥不是所有国家都出现在 CultureInfo.GetCultures() 中?