.NET 3.5中的CultureInfo类支持哪些文化?

时间:2010-02-17 16:28:05

标签: .net .net-3.5 localization globalization cultureinfo

无论使用何种操作系统,我都需要.NET 3.5支持的文化列表。 这似乎很难获得,但我不确定为什么!

编辑: Arghh,我不知道它依赖于操作系统,这可以解释缺乏文档。有关Mac / Linux操作系统支持的内容的任何想法吗?

谢谢:)

4 个答案:

答案 0 :(得分:8)

不幸的是,它依赖于操作系统。检查here以获取每个操作系统的默认语言支持。

注意,CultureInfo documentation警告:

  

Windows版本或Service Pack可以更改可用的文化。

在ASP.NET中,浏览器对操作系统来说非常重要。它可以通过Accept-Language(第14.4节)请求标头告诉您用户喜欢哪种语言。如果将应用程序的globalization配置设置为enableClientBasedCulture =“true”,ASP.NET将尝试自动将UICulture和Culture设置为浏览器提供的值。或者,您可以通过检查Request.UserLanguages属性来手动设置文化:

不幸的是,没有办法从操作系统或浏览器生成可能语言的详尽列表。最接近的是IANA Language Subtag Registry。这是RFC 4646中描述的语言注册表 - 定义.NET的CultureInfo标记的文档。

请注意,Request.UserLanguages中的语言标签不保证有效。你想要检查它们。 HTTP 1.1使用language tags的旧建议,没有什么能阻止某人在语言标题中发送乱码。

答案 1 :(得分:4)

National Language Support (NLS) API Reference列出了区域设置信息,并允许您选择操作系统。

Microsoft Locale Builder是一种为Windows Vista及更高版本创建自定义区域设置的工具。

获取操作系统支持的文化列表,包括自定义文化。

C#示例,

System.Globalization.CultureInfo[] cultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);

答案 2 :(得分:1)

可以创建自定义区域性,但默认类支持您运行的操作系统提供的文化。有文化参考supported by default on MSDN

答案 3 :(得分:0)

我刚刚使用Culture Explorer 2.0检查过,只有Windows文化和已安装的文化以及.NET Framework文化(至少在我的系统中,只包含纯语言文化)之间存在区别。所有这些都由CultureInfo类(以及RegionInfo,NumberFormatInfo等)支持。

我也在Mono上运行它(在Linux上),它大致相同,.NET Framework文化和Windows-Only文化缺失,但特定和中性文化在那里。 RegionInfo.CurrencyNativeName似乎没有在我的Mono版本中实现,因此在选择任何文化时都会崩溃。

不幸的是,Culture Explorer 2.0目前无法从任何地方获取(在gotdotnet.com上),我前一段时间下载了它。这是一个方便的工具。你可能有幸在一些档案中找到一个。