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 =列表分隔符
全球化的一个棘手问题是处理从右到左 (RTL) 语言。因此,我会在您的列表中包含使用阿拉伯语(或希伯来语)的区域设置,例如ar-EG“阿拉伯语(埃及)”。
您还可以采用伪语言环境方法并使用.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