by Michael S. Kaplan, published on 2011/11/23 07:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2011/11/23/10240896.aspx
Previous blogs from this series:
Continuing the tradition started in part 10 about things that are likely to make you say meh than oooooo!, let's talk about some of those new keyboards again.
Looking all the way back to part 2 of the series, I had an interesting list of keyboards at the end:
And of course people are already noticing these keyboards, and even trying to use them.
Like the other day, when a developer here asked me:
Hi Gentlemen,
I installed the Myanmar keyboard on Windows 8. When we call ::GetKeyboardLayout(), we got 0xFFFFFFFFF0302400. So, the primary langid is 0x0 (instead of 0x55 for LANG_MYANMAR). Is this a bug?
Now that value for LANG_MYANMAR has been reserved since at least 2007, but it has never shown up anywhere before in wither ntdef.h or winnt.h.
Remember that the main purpose of the LANG_* and SUBLANG_* consonants is to define legal values to use in all functions accept or return LCIDs -- and no data is defined for a Burmese locale.
Now in theory since we can work with expatriate linguists and language experts, the fact that we can't work directly with people in country does not block such a locale -- in fact this helps us with the font work we did do or Myanmar and the others covered by the list above.
Generally, this change can be thought of as a way to try to make huge chunks of what is displayable in fonts able to be typed in keyboards.
In the Developer Preview and even in latest builds, there doesn't seem to be an indication in the registry of what the language/script might be -- e.g. no "Layout Locale Name" registry value. I'm not sure if this is an oversight or not, but perhaps people will have to keep the list around themselves if they get a 0 for the LANGID and there is no "Layout Locale Name" there:
KLID | Layout Text |
00010c00 | Myanmar |
00020c00 | New Tai Lue |
00030c00 | Tai Le |
00040c00 | Ogham |
00050c00 | Tifinagh (Basic) |
00060c00 | Tifinagh (Full) |
00070c00 | Lisu (Basic) |
00080c00 | Lisu (Standard) |
00090c00 | N'Ko |
000a0c00 | Phags-pa |
Some might wonder why I don't just suggest that people use the "Layout Text" registry values like the ones in the table, but since they can change occasionally (the underlying keyboard don't but the string can if the name of the keyboard changes), it seems like a bad idea to me.
I originally asked for "Layout Locale Name" to be added, since users trying to suss out custm keyboard layouts would have to look for that anyway. But people didn't see the point -- anyone reading here want to weigh in on that?
Perhaps there will be other way to get at the info programatically at some point though....
referenced by
2012/10/26 The evolving Story of Locale Support, part 28: We finally fixed that 'Install New Languages' thing!
2012/10/02 The evolving Story of Locale Support, part 27: No, the T and the H aren't silent...
2012/08/20 The evolving Story of Locale Support, part 26: Hey Windows 8, there's someone on the phone for you.
2012/06/07 The evolving Story of Locale Support, part 24: I Adar you! Hell, I Double Adar you! (Windows 8 ed.)
2012/06/05 The evolving Story of Locale Support, part 23: Tamazight? Outta sight!
2012/04/12 The evolving Story of Locale Support, part 22: Digit Substitution 2.0
2012/03/08 The evolving Story of Locale Support, part 21: The Windows 8 Hijripalooza extraordinaire!
2012/03/02 The evolving Story of Locale Support, part 20: Yes, it's Bangla. Not Bengali!
2012/02/21 The evolving Story of Locale Support, part 19: In honor of International Mother Language Day...
2012/02/15 The evolving Story of Locale Support, part 18: Two scripts that share ten digits can be trouble
2012/02/02 The evolving Story of Locale Support, part 17: Today I feel like translating you more than before
2012/01/24 The evolving Story of Locale Support, part 16: We can't scale to a Xishuangbanna Dai locale, but…
2012/01/17 The evolving Story of Locale Support, part 15: Fixing our listings up in Windows 8!
2011/12/22 The evolving Story of Locale Support, part 14: Tifinagh, Tamazight, and Berber? Oh my!
2011/12/21 The evolving Story of Locale Support, part 13: Divvying up locales, yet again!
2011/12/20 On limitations your design that you may have failed to take into account