2010-02-17 34 views
12

无论使用哪种操作系统,我都需要.NET 3.5支持的文化列表。 这似乎是一个相当挣扎,虽然我不知道为什么!.NET 3.5中的CultureInfo类支持哪些文化?

编辑: Arghh,我不知道它是依赖于操作系统,这将解释缺乏文档。关于Mac/Linux操作系统支持什么的任何想法?

谢谢:)

+0

出于好奇,为什么你需要的名单? – OregonGhost 2010-02-17 17:02:03

+0

只是为了制定什么样的语言,我们将不得不为创建自定义文化以及我们可以使用'开箱即用'。例如,我最近被问到是否支持威尔士语。 – 2010-02-17 17:12:53

+0

不要忘记,CultureInfo的供应基本上是一个弦数(名称三种语言,ISO代码,货币名称)和日期和数字格式。后者在大多数情况下不需要专门的文化,因为它们对于大多数相关文化来说是相同的(即大多数欧洲国家具有相同的数字格式)。所以问题是,你需要一个威尔士文化,还是只需要威尔士语翻译?顺便说一下,虽然这不会解决您的一般问题,但Cy-GB可用于CultureInfo作为特定文化。有人要求威尔士支持可能会有... – OregonGhost 2010-02-18 09:12:30

回答

8

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

注意,CultureInfo documentation警告:

Windows版本或服务包可以改变现有的文化。

在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中的语言标记不保证有效。你会想检查它们。对于language tags,HTTP 1.1使用较早的建议,并且没有什么能阻止某人在语言标题中发送乱码。

+0

如果它是一个ASP.NET应用程序,我认为你的意思是它是基于托管该网站的服务器的操作系统? – 2010-02-17 17:54:36

+0

在ASP.NET中,浏览器提供了首选语言。我会用相关资源更新我的答案。 – 2010-02-17 20:41:30

1

它可以创建自定义的文化,但是默认的类支持你上运行的操作系统提供的文化。有一个文化的参考supported by default on MSDN

+0

如果它是一个ASP.NET应用程序,我认为你的意思是它是基于托管该网站的服务器的操作系统? – 2010-02-17 17:38:08

+0

@Fiona'fraid所以 - 客户端可能会连接服务器不理解的文化(可能是“en-scouse”) – 2010-02-17 20:32:48

0

我刚刚与文化探索者2.0进行了检查,区别仅限Windows文化和已安装的文化,以及.NET Framework文化(至少在我的系统上,只有包含纯语言文化)。所有这些都由CultureInfo类(和RegionInfo,NumberFormatInfo等)支持。

我也跑它单(在Linux上),这是大致相同的,与.NET Framework文化和失踪仅Windows - 文化,但具体的和中性的文化在那里。尽管如此,RegionInfo.CurrencyNativeName似乎并未在我的Mono版本中实现,因此选择任何文化时都会崩溃。

不幸的是,文化资源管理器2.0是当前不可用在任何地方(是在gotdotnet.com),我下载了它前一段时间。这对于这样的事情是一个方便的工具。你可能有幸在某些档案中找到一个。

+0

http://www.microsoft.com/middleeast/arabicdev/ DevTools/VSdotNET/samples/CultureExplorer.aspx – erikkallen 2010-02-17 20:53:54

+0

@erikkallen:这是该工具的第一个版本。它没有所有类别,只支持.NET Invariant国家和特定的语言文化。我不知道Culture Explorer 2.0的许可证 - 也许我可以稍后将其上传到CodePlex。 – OregonGhost 2010-02-18 09:05:53

+2

我在[Waybach Machine]上发现了Culture Explorer 2.0的全部荣耀(http://web.archive.org/web/20070218132812/http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid= b778ff2c-9142-4769-839a-094f51a6f9f4)! – 2013-01-31 11:58:50

4

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

微软的Locale Builder是为Windows Vista和更高创建自定义语言环境的工具。

获得支持的文化,包括自定义的列表,对于OS。

C#示例,

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