MSKLC can't do everything, even in the 1.4 version

Sorting it all Out
Michael Kaplan's random stuff of dubious value
Be sure to read the disclaimer here first!

MSKLC can't do everything, even in the 1.4 version

  • Comments 2

(this post might remind you a bit of this other one

Balabek asks:

Hi,

I am trying to create a phonetical transliteration from English to Kyrgyz. The Kyrgyz language support exists in Windows XP, but I find the layout quite inconvenient.

I have used the MS Layout Creator 1.4 to create a layout.

I have defined some printable characters as dead keys.

The problems are:

(1) the deadkey is not immediately displayed.

For example, sh combination gives cyrillic letter ш, but s is also mapped to с.

(2) the deadkey character is not always working. For example, sui should be mapped to сү, but su is getting transliterated first to су (because s is defined as deadkey), then i is getting processed. The result is суи.

I have read some of your blogs, and I considered you might be the person who can provide a little guidance.

I understand that using printable characters as deadkeys is strongly advised against, and (1) is not really a problem, rather a platform limitation.

The problem (2) annoys me more.

Is there a way to flush the current deadkey character out, then treat the next incoming character as start of the new character (and possible deadkey for the new character)?

I understand that MS KLC does not support some features, that WDK might have.

Would you recommend me going through WDM keyboard samples to understand its internals?

Also, I read about ligatures. WDK seems to support it.

Though I haven't analyzed how it works, I am assuming it simply replaces several characters with single one that represents them.

Could it be used/manipulated to imitate transliteration? I mean, replacе sh combination to give ш as ligature or so on?

Regards,

Balabek.

Well, there is bad news and worse news here, unfortunately.

The bad news is that there is no way to accomplish a transliteration keyboard using dead keys that will not hit the problems that Balabek ran into. Dead keys cannot act as regular keys; the only way around this is the convention of putting the character it where one would put a space, and even then there is no way to ever produce more than one UTF-16 code value.

The worse news is thst these limitations also exist in the WDK, it is intrinsic to the way that dead keys work on Windows (as I pointed out previously).

Oh, one other problem. As I explained last year in Definitions are context sensitive, when it comes to keyboards, a ligature is multiple UTF-16 code value that come out of a single keystroke, not the other way around. Once again, there really is no mechanism here for a transliteration keyboard to hook into....

 

This post brought to you by ш (U+0448, a.k.a. CYRILLIC SMALL LETTER SHA)

Comment on the blather
Leave a Comment
  • Please add 5 and 5 and type the answer here:
  • Post
Blog - Comment List
  • Hello there,

    Have you looked at a tool called Keyman Developer from Tavultesoft (www.tavultesoft.com)?  I think you will find it can do what you require.

    Gary

  • In theory, you can create just about any program using any programming language. And in my time I have

Page 1 of 1 (2 items)