4

我是 C# 的新手。我想要的是以下内容:

我有两个组合框:

  • 在第一个中,我拥有所有标准语言(en,de,fr,...)
  • 在第二个中,我想从第一个组合框中选择的语言中获取区域语言(如果我选择“en”,那么应该列出“en-US”,“en-GB”,...)

任何人都可以帮助我吗?:D

格力兹阿里昂

4

2 回答 2

5

你可以使用这个:

var parent = CultureInfo.GetCultureInfo(selectedLanguage);
var regionalLanguages = CultureInfo.GetCultures(CultureTypes.AllCultures)
                                   .Where(x => x.Parent.Equals(parent));
于 2012-09-06T08:27:06.163 回答
0

可能有更简单的方法,但这有效:

  1. 创建一个Dictionary<CultureInfo, HashSet<CultureInfo>>将中立文化映射到特定国家/地区的文化。
  2. 调用CultureInfo.GetCultures()以获取所有已安装的文化。
  3. 对于每个 CultureInfo 返回的调用IsNeutral以查看它是否是中性文化。如果是这样,请将其添加到字典中,并将空哈希集作为值。如果不是,请调用CultureInfo.Parent直到您获得中性文化,然后将中性文化作为键并将国家/地区特定文化添加到 HashSet。

请注意,某些国家/地区中立文化似乎是特定于国家/地区的,例如 zh-Hans(简体中文)和 zh-Hant(繁体中文)。您还将获得一些传统文化,例如 zh-CHS 和 zh-CHT(又是简体中文和繁体中文)也可能会获得一些带有变音符号的文化。

于 2012-09-06T08:34:03.083 回答