我知道有三种方法可以获得CultureInfo对象的完整语言名称。
CultureInfo.DisplayName
CultureInfo.NativeName
CultureInfo.EnglishName
DisplayName以安装的.net语言提供名称 NativeName以“CultureInfos”语言提供名称 EnglishName用英文命名(令人惊讶的是......)
因此,对于CultureInfo de-DE,这给出了(在英文.net上安装)
德国
德语
德国
现在我的问题:有没有办法用另一种语言询问de-DE的语言名称?例如。我想用荷兰语中的de-DE语言名称(这将是'Duits')。
答案 0 :(得分:15)
此功能未内置于.NET Framework
中答案 1 :(得分:5)
CultureInfo.EnglishName:
的示例 public CultureInfo GetCultureInfo(string EnglishName)
{
foreach (CultureInfo info in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
if (info.EnglishName == EnglishName)
return new CultureInfo(info.Name);
}
return null;
}
答案 2 :(得分:1)
原则上,以下代码有效:
private static ResourceManager resourceManager = new ResourceManager("mscorlib", typeof(int).Assembly);
public static string CultureName(CultureInfo culture, CultureInfo displayCulture)
{
return resourceManager.GetString("Globalization.ci_" + culture.Name, displayCulture);
}
但是有一些重要的限制:
需要在运行它的计算机上安装显示语言。您可以安装其他语言,具体取决于您使用的Windows版本。
在大多数计算机上只有一种已安装的语言,这在大多数情况下都是毫无意义的。