Jeff Zaroyko jeffzaroyko@gmail.com writes:
This fixes bug 15181, test included - passes on Windows 95, 2003, XP, 2008, Vista and Windows 7 beta that I've tested.
From 52ff2d29ba9fbffbe8da46a7523338e8b946bbcd Mon Sep 17 00:00:00 2001 From: Jeff Zaroyko jeffz@jeffz.name Date: Sun, 23 Aug 2009 12:38:17 +1000 Subject: kernel32: set sLanguage to LOCALE_SABBREVLANGUAGE to match Windows behavior
As a Profile entry and under Control Panel\International sLanguage is not LOCALE_SLANGUAGE but instead appears to be LOCALE_SABBREVLANGNAME.
I've verified this is the case for 95, XP, 2003, 2008, Vista and Win 7.
With the sLanguage override set GetLocaleInfo for LOCALE_SLANGUAGE still returns the LOCALE_SLANGUAGE string and not the "override", which suggests that the Control Panel\International sLanguage override should be ignored by GetLocaleInfo for LOCALE_SLANGUAGE.
You shouldn't need any special casing for this, just change the existing mappings to use the appropriate value.