【问题标题】:Why we get the same CultureInfo.LCID from CultureInfo.GetCultures(CultureTypes.AllCultures)为什么我们从 CultureInfo.GetCultures(CultureTypes.AllCultures) 获得相同的 CultureInfo.LCID
【发布时间】:2014-10-23 08:55:07
【问题描述】:

我们的代码很简单,获取文化并将它们放在下拉列表控件中。

items = new SortedDictionary<int, string>();
foreach (CultureInfo info in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
    string value = string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0} - {1}", info.LCID, info.DisplayName);
    if (!items.ContainsKey(info.LCID))
    {
         items.Add(info.LCID, value);
    }
}

我们想使用 LCID 作为字典的键。

但是,有时我们会得到相同的 LCID 值,例如当 LCID 为 4 时,显示名称为“Chinese(Simplified)”或“Chinese(Simplified)Legacy”,这些 CultureInfo 有什么区别?

我们还可以使用 LCID 作为密钥吗?

感谢您的回答

【问题讨论】:

  • LCID 是一个旧号码,可追溯到上个世纪发布的 Windows 版本。保留只是为了与旧代码兼容,特别是 COM 自动化。只是一个语言标识符,它不再是区分文化的可靠方法。

标签: c# .net culture


【解决方案1】:

“Chinese (Simplified)”和“Chinese (Simplified) Legacy”指的是相同的文化(相同的LCID)。您可以使用 LCID 作为密钥。

This was a change introduced in .NET Framework 4 遵循命名约定 LanguageName ([Script,] Country/RegionName)。

中国文化的显示名称已更改为遵循命名约定 LanguageName ([Script,] Country/RegionName)。在 .NET Framework 4 中,单词“Legacy”已附加到 zh-CHS 和 zh-CHT 显示名称中,以将它们与 zh-Hans 和 zh-Hant 区分开来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2021-03-23
    相关资源
    最近更新 更多