>我有国家列表,有两个字母代码,如"US"和三个字母代码,如"USA"。我只想分配所有 239 个国家/地区都有像 en-US(而不是 es-US)这样的区域设置代码。
我尝试了迭代:
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
然后:
var country = countries.Where(c => c.CodeIso3 == region.ThreeLetterISORegionName).FirstOrDefault();
它不起作用,以覆盖太多。
如何将 239 个国家/地区的代码分配给主要(或默认)语言?
谢谢
没有办法做到这一点。这是因为您想到的许多国家/地区没有默认语言这样的东西。
例如,美国没有官方语言。尽管大多数公民都使用英语,但这并不是默认的。另一个有趣的例子是瑞士。其公民使用法语,德语,意大利语和罗曼什语。这些都不是默认的。
这就是为什么没有这样的 API 的原因。
编辑:
正如我之前所说,在许多国家,没有默认语言。我甚至举了一个拥有不止一种主要语言(德语和法语)的国家的例子。对于所有仍然无法理解这真的没有意义的人,我将给你一个关于如何猜测最可能的语言的线索:
通用区域设置数据存储库区域语言信息
如果你仍然不明白为什么限制每个国家只使用一种语言可能不是最好的主意,我放弃了。