全球兼容性最常见的区域设置

6

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

由于我希望我的程序与尽可能多的国家兼容(但时间有限),那么测试哪个地区最常见的前10个locale呢?由于我正在使用C#,因此可以通过使用以下方式找到:

CultureInfo.CurrentCulture.ToString()

据我所知,这些对应着控制面板 -> 区域和语言 -> 格式下的项目。
一个易于测试的选项是"英语-(美国)"(在C#中是"en-US")。不过这只是其中之一,我需要另外5到10个。
前十名应该包括“多样性”。例如,如果它们都使用句点作为小数点,那将没有太大帮助。我至少需要有一个使用逗号作为小数点的区域(如欧洲、南美洲、俄罗斯等)。
同样地,我还需要使用'.'、'/'和'-'作为日期分隔符的区域。
因此,我的原始问题现在变得更加复杂,但可能更加有用。我想要使用最常用的区域设置,但要稍微倾向于多样性,以便更容易地进行测试并且能够更好地保证在未经测试的区域设置下工作。

这并不是一个编程问题,而是一个人口统计学问题。 - Oded
这也适用于编程 - 因为错误可能会在其他国家中出现,而在本地似乎运行良好。我还能在哪里发布这个问题? - Dan W
它适用于编程并不重要 - 它也适用于市场营销和销售。我不知道它属于哪里,但我不认为它属于SO。 - Oded
我倾向于将其视为营销和编程之间的交集,特别是因为区域/符号倾斜(过滤掉“相似”的区域设置)。是的,在Windows营销论坛中这个问题很相关,但在这里也不会有任何伤害。我想我希望许多其他程序员已经遇到了同样的问题,并且能够回答这个问题。 - Dan W
3个回答

18

在搜寻了一个小时后,我最好的结果就是找到一些提供基于他们自己反馈的“前十名”的链接。为了帮助其他用户,我将结果汇总以制作这个可能略微不准确或者非常不准确的前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代表列表分隔符。


感谢分享你的结果!省了我些时间。 - Cristian Diaconescu

6
一项全球化的棘手问题是如何处理从右到左(RTL)的语言。因此,您需要在列表中包含使用阿拉伯语(或希伯来语)的区域设置,例如ar-EG“阿拉伯语(埃及)”。
您还可以采用伪区域设置方法,并使用.NET支持的伪区域设置进行测试,这些区域设置具有可以暴露全球化错误的特殊性。它们中有三个,“基本”(它很方便,因为它生成可理解的文本,例如“[Шěđлеśđαỳ !!!],2006年3月8日的[Μäŕςћ !!]之一”),“镜像”和“东亚语言”。

请注意,要成功构建使用伪语言的.NET应用程序,您可能需要配置系统。请参阅https://dev59.com/jV7Va4cB1Zd3GeqPKHy1 - Clafou
谢谢 - 以前从未了解过伪语言环境。 - Dan W

-3

1
谢谢,尽管这并不一定考虑到该语言下的计算机用户。也没有考虑到“多样性”偏见,这使我可以测试尽可能少的区域设置,并更有可能在整个领域范围内推广。最后,我想要的是Windows区域设置,而不是语言本身。 - Dan W

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接