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

Dan*_*n W 4 c# globalization locale internationalization

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

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

CultureInfo.CurrentCulture.ToString()
Run Code Online (Sandbox Code Playgroud)

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

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

前10名还应包括"多样性".例如,如果他们都使用句点作为小数点,那将不是很有帮助.我还希望至少有一个使用逗号作为小数点(如欧洲,南美,俄罗斯等).

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

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

Dan*_*n W 13

经过一个小时的搜索,我能想到的最好的是一些根据自己的反馈提供"前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      .,,
Run Code Online (Sandbox Code Playgroud)

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     ,.;
Run Code Online (Sandbox Code Playgroud)

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


Cla*_*fou 6

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

\n\n

您还可以采用伪语言环境方法并使用.NET 支持的伪语言环境进行测试,该方法表现出可能暴露全球化错误的特性。其中有三个,“Base”(这很方便,因为它生成可理解的文本,例如“[\xd0\xa8\xc4\x9b\xc4\x91\xd0\xbb\xd0\xb5\xc5\x9b\xc4\x91 \xce\xb1\xe1\xbb\xb3!!!], 8 \xc5\x8df [\xce\x9c\xc3\xa4\xc5\x95\xcf\x82\xd1\x9b!!] \xc5\x8df 2006" )、“镜像”和“东亚语言”。

\n