如何在 dotnet 中获取所有国家/地区名称的翻译列表

How to get translated list of all country names in dotnet

我正在尝试使用两个字符的国家/地区代码构建国家/地区名称字典,但将国家/地区名称翻译成所选语言。

我知道阿拉伯联合酋长国的国家代码是 AE,但我要传递给 IStringLocalizer 什么来翻译它?

我可以使用类似下面的东西吗?

var localizer = _localizer.WithCulture(new CultureInfo("fr-FR"));
var countryNameTranslated = localizer[103392].ToString();

但我需要的是两个字符的国家/地区代码及其(ISO?)编号的完整列表,因此我可以遍历所有这些代码,使用选定的文化代码和本地化程序将它们全部翻译。

如何从 dotnet core Microsoft 库中获取 2 个字符代码及其数字代码的完整列表? (这甚至可能吗?)

我推荐两个 Nuget 包:

  • Jorn Schou-Rode 的 ISO3166
  • cmon 的 IsoNames

获取所选语言的国家/地区名称:

IsoNames.CountryNames.GetName(new CultureInfo(language), country);

获取两个字母代码的列表:

ISO3166.Country.List.Select(c => c.TwoLetterCode);

我之前为类似的任务寻找过一些 MS 的东西,最后得到了这两个包。