Title: Table of conversion of ISO-639/ISO-3166 based language/country locale name to Windows ones and back
Tags: c++;visual-c++;localization;locale;setlocale
Question: I want to convert POSIX locale names like en_US, de_DE that use
ISO-639-1 and ISO-3166 codes
to Windows ones English_United States, German_Germany and back.
I had found following tables on MSDN site:
Languages http://msdn.microsoft.com/en-us/library/39cwe7zf(v=VS.71).aspx
Countries http://msdn.microsoft.com/en-us/library/cdax410z(v=VS.71).aspx
However they are very partial. For example these tables miss Arabic, Hebrew and many other locales that I know are supported Hebrew_Israel.
Where can I find fully updated tables of Windows locale names and ISO 639/3166 codes.
Note: I need it to work from Windows 2000 or at least XP to Windows 7, so I don't want to relay on
fact that Vista and 7 support BCP-47 style locale names.
Edit: I have an ISO-639 language codes and ISO-3166 country/territory codes.  But I need to know what languages/countries are supported and how they are actually named under MSVC should I use.
Comment: I don't think there is any such table anywhere readily available. Locale names are not standardized. Why do you want this? The locale names are usually only interesting for users, less so for the code and the developer.

Comment: @wilx they are actually quite common and and very similar to standardized BCP 47. So you can expect for example that `en_US`, `de_DE` and `ar_EG` would mean same on all platforms. So I need just a list of all support Windows locales so I can map one to other.

Here is the accepted answer: I think I had found the answer: http://msdn.microsoft.com/en-us/library/cc233965.aspx
This documents includes locale ids, their names and ISO codes...
Comment for this answer: This is the only comprehensive list I was able to find of ISO and country codes; thank you! I managed to find a more easily usable version at the following link. I'm not sure how up-to-date it is, though, but it appears to cover a lot of languages and countries: http://www.localeplanet.com/dotnet/index.html


{'source': 'StackExchangeDataset', 'subset': 'stackoverflow.com', 'metadata': {'AnswerCount': 1, 'CommentCount': 2, 'ContentLicense': 'CC BY-SA 2.5', 'CreationDate': '2010:00:08/13/10', 'FavoriteCount': 1.0, 'PostTypeId': 1, 'Tags': '<c++><visual-c++><localization><locale><setlocale>', 'Title': 'Table of conversion of ISO-639/ISO-3166 based language/country locale name to Windows ones and back', 'ViewCount': 7325, 'id': 3477555, 'user_AboutMe': '<p>I\'m an author of several FOSS projects:</p>\n\n<ul>\n<li><a href="http://cppcms.sourceforge.net" rel="nofollow">CppCMS</a> - High performance, MVC C++ Web Development Framework.</li>\n<li><a href="http://cppcms.sourceforge.net/boost_locale/html/index.html" rel="nofollow">Boost.Locale</a> - High quality localization tools for C++ (currently waits for review for Boost)</li>\n<li><a href="http://biditex.sourceforge.net/" rel="nofollow">BiDiTeX</a> - bidirectional support of Hebrew in LaTeX.</li>\n<li><a href="http://cppcms.sourceforge.net/sql/cppdb/" rel="nofollow">CppDB</a> - SQL Connectivity library for C++ (independent part of CppCMS Project)</li>\n</ul>\n', 'user_AccountId': 25772.0, 'user_DisplayName': 'Artyom', 'user_Reputation': 30186.0, 'user_Views': 3508.0, 'user_id': 66522.0}}