by Michael S. Kaplan, published on 2007/03/11 09:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/03/11/1857176.aspx
Way back near the end of 2005 in What's up with the language names?, I went through the many different language names available programmatically in both Windows nd the .NET Framework.
One particular issue I went on about at length in particular was LOCALE_SLANGUAGE used with GetLocaleInfo.
Well, if you are using Vista you can pretty much ignore it all. :-)
Because in Vista the region name is always included in the LOCALE_SLANGUAGE value (and sometimes the script is even included, though that only happens when not including it could lead to ambiguities.
At the time I wrote that post I was describing the actual design of the data and the reasoning/justification for that design, though in the context of Vista and it's change, it now appears more like a bug was fixed and my text us trying to provide a justification to not fix the bug (a justification that was ultimately not accepted). In truth though, the process was much less sinister than an attempt to rewrite history, and certainly less sinister than attempt to make me look wrong. :-)
In fact the decision was made more because of the ease with which the language name without the context of the region was leading to problems due to all the places that LOCALE_SLANGUAGE values are used in the Windows user interface. Given the lack of a deterministic way to always know how the name is constructed (and since sometimes the region is in fact needed), the decision was made to simply always include it.
Of course this change might break anyone who was using LOCALE_SLANGUAGE and LOCALE_SCOUNTRY to construct such names, leading them to build names like Japanese (Japan) (Japan) and so on, so the change probably does not score too highly for its backcompat sensitivity, but in the end this factor was believed to be outweighed by the confusion of not enough information (and building strings that appear to stutter is not the end of the world!)....
This post brought to you by パ (U+30d1, a.k.a. KATAKANA LETTER PA)
referenced by