4

尽管我本地化了当前文化,但以下代码仍返回英文名称。

List<string> languageList = new List<string>();
CultureInfo[] cultureList = CultureInfo.GetCultures(CultureTypes.AllCultures);

    foreach (CultureInfo culture in cultureList)
    {
        languageList.Add(culture.DisplayName);
    }

如果我想让显示名称用意大利语、德语或我指定的任何语言显示怎么办?有什么建议么?

4

2 回答 2

4

DisplayName属性以.NET Framework 的本地化版本的语言返回区域性名称:

此属性表示 .NET Framework 版本的本地化名称。例如,如果安装了 .NET Framework 英文版,则该属性返回“English (United States)”作为en-US区域性名称。如果安装了 .NET Framework 西班牙语版本,则无论系统设置为显示哪种语言,文化名称都以西班牙语显示,并且属性en-US 返回“Ingles (Estados Unidos)”。

请改用NativeName属性。但是,请注意,您无法获得不同于其自身语言的文化名称(当然,英语和您的 .NET Framework 版本的语言除外)。

于 2011-05-05T11:46:30.517 回答
3

您应该使用该NativeName属性

也看看这个问题How to translate CultureInfo language names

于 2011-05-05T11:46:09.460 回答