Most Common Locales for Worldwide Compatibility
I don't think this has ever been asked on StackOverflow. I am writing a program in C #, but this question applies to any programming language under Windows 7.
Since I want to make my program compatible with as many countries as possible (but with limited time at hand), what are the 10 most common test locations? Since I am using C # this can be found using:
CultureInfo.CurrentCulture.ToString()
As far as I know, they correspond to the items under Control Panel -> Region and Language -> Format
A hassle-free test would be "english - (US)" (which under C # is "en-US"). This is just one - I'm looking for another 5-10 or so.
The top 10 should also include "diversity". For example, if they all used the period as a decimal point, this is not very useful. I would also like to at least use a comma as a decimal point (like Europe, South America, Russia and others).
Similarly, I would like locales to use ".", "/" And "-" as the date separator.
So my original question is now a little more complicated, but potentially much more useful. I want to use the most commonly used locales, but with a slight to moderate bias towards diversity, so that I can generalize testing more easily with a much better assurance that they will work in untested places.
source to share
After searching for an hour, the best I could come up with are a few links that feed the "top 10" based on their own feedback. To help other users, I've combined the results to create this, probably in moderation, to a wildly imprecise top 12 list:
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 = decimal character. y = digit grouping character. z = list separator. The three numbers in the URL rank represent how far away the locale was in each list.
Sources:
- http://fptvwebhost08.fiberpipe.tv/wmppt/fptv2stats/tvctv/MostPopularLanguages.html
- http://reader.feedshow.com/show_items-feed=4eb71cf05ea935bf63450bb480fe23ad
- http://banshee-media-player.2283330.n4.nabble.com/Some-observations-on-our-data-collecting-td2988638.html
You can use this url to convert between region and C # code: http://www.csharp-examples.net/culture-names/
Below is the final filtered list that I will personally check. I've removed cultures that are similar or close to other cultures (mostly in terms of dates, times and characters / separators - if your criteria is something else, I'd pay more attention to the list above). I also added Bengali (India) and Danish (Denmark) which are very different from the others.
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 = decimal character. y = digit grouping character. z = list separator
source to share
One tricky aspect to globalization is working with right to left languages (RTL). So I would include a language that uses Arabic (or Hebrew) in your list, for example ar-EG
"Arabic (Egypt)".
You can also take a pseudo-local approach and test using . .NET supported pseudo data that demonstrates features that can cause globalization errors. There are three of them, "Base" (which is convenient as it gives clear text such as "[Shezđđśđśđỳ !!!], 8 ōf [Μäŕςћ !!] ōf 2006"), "Mirror" and "East Asian" ,.
source to share
If we talk about the popularity of languages around the world:
http://www.wolframalpha.com/input/?i=top+10+most+spoken+language
As far as "diversity" is concerned, this is not a language forum.
source to share