The evolving Story of Locale Support, part 11: What language is that keyboard for?

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....


comments not archived

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/07/11 The evolving Story of Locale Support, part 25: Something old, something new, something repurposed, and something...

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

2011/12/09 The evolving Story of Locale Support, part 12: Logic dictates that we keep a sense of proportion about the RATIO

go to newer or older post, or back to index or month or day