我认为在StackOverflow上没有问过这个问题。我正在编写一个C#程序,但这个问题适用于Windows 7下的任何编程语言。
由于我希望让我的程序与尽可能多的国家/地区兼容(但手头的时间有限),要测试的十大最常见的语言环境是什么?由于我使用的是C#,因此可以通过以下方式找到:
CultureInfo.CurrentCulture.ToString()
据我所知,这些与以下项目相对应:控制面板 - >地区和语言 - >格式
一个明智的选择是“英语 - (美国)”(在C#下是“en-US”)。 这只是一个 - 我正在寻找另外5-10左右。
前10名还应包括“变种”。例如,如果他们都使用句点作为小数点,那将不是非常有用。我还希望至少有一个使用逗号作为小数点(如欧洲,南美,俄罗斯等)。
同样,我想要使用'。','/'和' - '作为日期分隔符的语言环境。
所以我原来的问题现在有点复杂,但可能更有用。我想要最常用的语言环境,但是对于多样化有轻微到中等偏见,这样我就可以更容易地推广测试,更好地保证它们可以在未经测试的语言环境下工作。
答案 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)