by Michael S. Kaplan, published on 2005/06/13 12:39 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2005/06/13/428570.aspx
Late last year, I asked and answered two 'neutral' questions: What is a neutral culture? What is a neutral locale?
And I did go to some lengths to explain in there why they were not too terribly useful except for resource loading.
But most of the time, people both inside of Microsoft do not actually use them even for that. It is one of the reasons why (as Mike Williams charitably put it) English = English(US) in so many cases.
Not just when it makes sense like with Iberian Portuguese (LCID 0x0816) and Brazilian Portuguese (LCID 0x0416), when the languages are somewhat mutually intelligible but truly very different -- enough to warrant separate localizations.
But also in cases such as Italian where LCID 0x0410 is generally used for all Italian localization, even for when it is Switzerland bound Italian (LCID 0x0810). And generally the good old LANG_ITALIAN (0x010) that is the basis of both is not used. And of course as Mike noted, all of the versions of English use LCID 0x0409 rather than LANG_ENGLISH (0x009).
(If you are primarily working in the world of Office or VBA or SQL Server, replace those hex values with 2070, 1046, 1040, 2064, 16, 1033, and 9, respectively)
We in NLS are to some extent unindicted co-conspirators in this since we generally have the LOCALE_SLANGUAGE and related locale data returned by GetLocaleInfo return only the language when the language does not have multiple locales associated with it. Or perhaps the charges were dropped when it was clear that we do have the country/region info in there any time there are multiple locales using the same language....
It would actually make sense to tag the resources with the neutral locale in cases such as this. And it would work. But at this point it is hard to get people to change processes, especially for languages into which they already localize.
I remember a bunch of cases in SQL Server where they had to put duplicate sets of Spanish language resources under both the 1034 and the 3082 subdirectories (that's 0x040a and 0x0c0a for those who prefer hex), due to a combination of not only feeling the need to use full LCIDs but also having conflicting methods for producing the full LCID from good old LANG_SPANISH. Not sure whether that is still a problem or not....
Of course, as Mike said there are lots of other times that the full LCIDs are used, and some of those cases really don't make very much sense. By and large I know that there are people throughout Microsoft who are trying to do that less, and I think that they (well, we) are doing that faster than new cases are being added by people who do not realize the problems. Between that and trying to get people to recognize the GEOID and how that location information may well be a better choice for location-specific restrictions, this problem should get better over time....
This post brought to you by "Җ" (U+0496, a.k.a. CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER)
# Mike Williams on 28 Jun 2005 4:45 AM:
referenced by
2011/03/16 Reporting one casualty in the operation; luckily it was the stupidest member of the unit
2008/11/12 You can either be intuitive and completely inconsistent, or consistent and completely unintuitive!
2008/07/11 What kind of English were you looking for? We only seem to have one in stock....
2007/01/25 Internet Explorer 7.0's language settings? This may be the last straw....
2006/10/14 Understanding (and explaining) why English is everywhere
2006/10/13 Local experiences in Norway: the Nynorsk LIP!
2006/09/12 They speak English in other places, too
2006/03/01 About that Portuguese localization question...
2005/08/31 Sometimes it *does* pay to be neutral