C# 如何翻译CultureInfo语言名称
我知道有三种方法可以获得CultureInfo对象的完整语言名称C# 如何翻译CultureInfo语言名称,c#,cultureinfo,C#,Cultureinfo,我知道有三种方法可以获得CultureInfo对象的完整语言名称 CultureInfo.DisplayName CultureInfo.NativeName CultureInfo.EnglishName DisplayName以安装的.net语言提供名称。 NativeName以“CultureInfo”语言提供名称。 EnglishName以英语命名(令人惊讶…) 因此,对于CultureInfo de de,它(在英语.net安装上)提供了 德语 德国 德文 现在我的问题是:
CultureInfo.DisplayName
CultureInfo.NativeName
CultureInfo.EnglishName
DisplayName以安装的.net语言提供名称。NativeName以“CultureInfo”语言提供名称。
EnglishName以英语命名(令人惊讶…) 因此,对于CultureInfo de de,它(在英语.net安装上)提供了
德语
德国
德文
现在我的问题是:有没有办法用另一种语言询问de de的语言名称?例如,我想要荷兰语中de de的语言名称(即“Duits”)。此功能未内置到.NET Framework中
请看一下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;
}
原则上,以下代码起作用:
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或.NET的更新中断
- 显示语言需要安装在运行它的计算机上。您可以安装其他语言,具体取决于您使用的Windows版本 在大多数计算机上,只安装了一种语言,这在大多数情况下是毫无意义的