最常见的区域设置,以实现全球兼

时间:2012-03-14 22:10:08

标签: c# internationalization locale globalization

我认为在StackOverflow上没有问过这个问题。我正在编写一个C#程序,但这个问题适用于Windows 7下的任何编程语言。

由于我希望让我的程序与尽可能多的国家/地区兼容(但手头的时间有限),要测试的十大最常见的语言环境是什么?由于我使用的是C#,因此可以通过以下方式找到:

CultureInfo.CurrentCulture.ToString()

据我所知,这些与以下项目相对应:控制面板 - >地区和语言 - >格式

一个明智的选择是“英语 - (美国)”(在C#下是“en-US”)。 这只是一个 - 我正在寻找另外5-10左右。

前10名还应包括“变种”。例如,如果他们都使用句点作为小数点,那将不是非常有用。我还希望至少有一个使用逗号作为小数点(如欧洲,南美,俄罗斯等)。

同样,我想要使用'。','/'和' - '作为日期分隔符的语言环境。

所以我原来的问题现在有点复杂,但可能更有用。我想要最常用的语言环境,但是对于多样化有轻微到中等偏见,这样我就可以更容易地推广测试,更好地保证它们可以在未经测试的语言环境下工作。

3 个答案:

答案 0 :(得分:12)

经过一个小时的搜索,我能想到的最好的是一些根据自己的反馈提供“前10名”的链接。为了帮助其他用户,我将结果组合起来产生这个可能适度到极不准确的前12名列表:

C# code  URL pos   Windows region format       Short date   Long time    xyz
en-US    1,1,1     English (United States)     M/D/yyyy     h:mm:ss tt   .,,
zh-CN    2,2,20    Chinese (simplified, PRC)   yyyy/M/d     H:mm:ss      .,,
ru-RU    4,10,5    Russian (Russia)            dd.MM.yyyy   H:mm:ss      , ;
fr-FR    8,5,7     French (France)             dd/MM/yyyy   HH:mm:ss     , ;
es-ES    5,9,10    Spanish (Spain)             dd/MM/yyyy   H:mm:ss      ,.;
en-GB    11,7,2    English (United Kingdom)    dd/MM/yyyy   HH:mm:ss     .,,
de-DE    12,3,3    German (Germany)            dd.MM.yyyy   HH:mm:ss     ,.;
pt-BR    10,6,10   Portuguese (Brazil)         dd/MM/yyyy   HH:mm:ss     ,.;
en-CA    14,8,12   English (Canada)            dd/MM/yyyy   h:mm:ss tt   .,,
es-MX    13,13,13  Spanish (Mexico)            dd/MM/yyyy   hh:mm:ss tt  .,,
it-IT    16,6,-    Italian (Italy)             dd/MM/yyyy   HH:mm:ss     ,.;
ja-JP    15,8,30   Japanese (Japan)            yyyy/MM/dd   H:mm:ss      .,,

x =十进制符号。 y =数字分组符号。 z =列表分隔符。 URL评级中的三个数字表示区域设置在每个列表中的距离。

来源:

可以使用此URL在区域和C#代码之间进行转换: http://www.csharp-examples.net/culture-names/

以下是我个人将要检查的最终筛选列表。我删除了与其他文化相似或几乎相似的文化(主要是在日期,时间和符号/分隔符方面; - 如果您的标准是别的,我会更加关注上面的列表)。我还添加了孟加拉语(印度)和丹麦语(丹麦语),这些语言与其他语言完全不同。

C# code   URL pos  Windows region format       Short date    Long time    xyz
en-US     1,1,1    English (United States)     M/D/yyyy      h:mm:ss tt   .,,
de-DE     12,3,3   German (Germany)            dd.MM.yyyy    HH:mm:ss     ,.;
fr-FR     8,5,7    French (France)             dd/MM/yyyy    HH:mm:ss     , ;
zh-CN     2,2,20   Chinese (simplified, PRC)   yyyy/M/d      H:mm:ss      .,,
es-ES     5,9,10   Spanish (Spain)             dd/MM/yyyy    H:mm:ss      ,.;
ru-RU     4,10,5   Russian (Russia)            dd.MM.yyyy    H:mm:ss      , ;
en-GB     11,7,2   English (United Kingdom)    dd/MM/yyyy    HH:mm:ss     .,,

bn-IN     -,-,-    Bengali (India)             dd-MM-yy      HH.mm.ss     .,,
da-DK     -,-,-    Danish (Denmark)            dd-MM-yyyy    HH:mm:ss     ,.;

x =十进制符号。 y =数字分组符号。 z =列表分隔符

答案 1 :(得分:3)

全球化的一个棘手问题是处理从右到左(RTL)语言。所以我会在你的列表中包含一个使用阿拉伯语(或希伯来语)的语言环境,例如ar-EG“阿拉伯语(埃及)”。

您还可以使用伪语言环境方法并使用.NET-supported pseudo-locales进行测试,这会显示出可能暴露全球化错误的特性。其中有三个,“基地”(这是方便的,因为它产生可理解的文字,如“[Шěđлеśđαỳ!!!],8ōf[Μäŕςћ!!]ōf2006”),“镜像”和“东亚语言”

答案 2 :(得分:0)

如果我们追逐全球语言的流行:

http://www.wolframalpha.com/input/?i=top+10+most+spoken+language

就“多样性”而言,这不是一个语言论坛。