by Michael S. Kaplan, published on 2007/01/31 06:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/01/31/1564299.aspx
QTran asked via the Contact link:
Install the Vietnamese keyboard on XPSP2, and guess what it didn't work very well. The major stumbling block for me is when I have to enter digits. You see, I am a touch-typist and to type a number I have to press [AltGr]. Great, it kinda works for 1 to 5 but when trying 6-0, I can't press [AltGr] and the keys at the same time.
I figure if I can use MSKLC to change the layout to what I get used to. Looks like it's not working either because MSKLC doesn't chain dead keys, then I came across your post about this in 2005/11/11. Definitely, it'll be great if it could.
Looks like I am 1 year too late, but ... is there any chance that you'll revisit the issue ?
Well, revisiting is easy, but that won't mean it gets fixed or anything. :-)
The post in question is What to do with the Vietnamese keyboard on Windows?. Though for qtran's specific issue, using CTRL+ALT with the left hand might be a workaround to easily get at the 6/7/8/9/0 on the keyboard. Though I never mind when people want to build their own keyboards with MSKLC. :-)
Of course when I was talking about whether people had feedback about the Vietnamese keyboard, I was definitely thinking more about the language issues, specifically about the limitations surrounding the way characters with multiple diacritics are handled.
The fundamental problem is the limitation on chained dead keys in Windows.
The short version (for those who don't want to follow the link), is that there is only so much state that is held -- basically up to a single pending dead key. The only way, therefore, to support chained dead keys is to have a unique character that represents the two diacritics together. There is unfortunately no such character for most of the instances that would be needed for Vietnamese, which means there is no way to support the dead key model for Vietnamese.
So there are two workarounds:
1) Have a layout support the Unicode model (which is to type the base letter followed by the diacritics) -- this will create text in normalization form D.
2) Have a layout support a mixed model (which is to type a diacritic, followed by a base letter plus diacritic) -- this will create text that is in an interim state between Normalization Forms C and D.
Of the two, #1 seems like it would be more natural (and #2 seems like it would be non-intuitive for everyone). Though only someone who knows the language could say more about hos such a keyboard would flow conceptually with the way someone would think about letters....
It might even be worth putting a .KLC file together that would support Vietnamese this way so people could try it out and see if it worked for them....
This post brought to you by ễ (U+1ec5, a.k.a. LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE)
# Tom Gewecke on 31 Jan 2007 11:08 AM:
On a Mac, the normal way you type Vietnamese is first vowel, then tone, with output being the precomposed Unicode characters. All the vowels (a e y u i o ư ơ ă â ê ô ) are deadkeys. If you hit one, it is displayed in a yellow box until you choose a tone or another letter. So only two strokes are needed to generate anything. As far as I know, users have no problems with it, though people have made other layouts to allow input with conventions like Telex and VNI.
# Michael S. Kaplan on 31 Jan 2007 11:34 AM:
Yes, and then it produces normalization form D text, right? The user experience is like an IME-ized version of my #2 above, but with different results coming out....
# Tom Gewecke on 31 Jan 2007 1:39 PM:
Output in OS X 10.4 is all precomposed, normalization form C. In 10.3 it was form D, and everyone installed a 3rd-party alternative to get C.
# Michael S. Kaplan on 31 Jan 2007 1:44 PM:
Hey, that's news!
Is the OS/filesystem stuff still Form D? Or did that get changed, too?
# Tom Gewecke on 31 Jan 2007 5:26 PM:
The file system (HFS+) is still form D. There are rumors that 10.5 might have the ability to use ZFS. Don't know if that would be different or not.
# Quoc Tran on 2 Feb 2007 1:27 AM:
Finally, I work out a vietnamese keyboard layout that I like. It just follows the unicode model - no dead key, whatsoever! Well it actually is in NFD.
Linguistically, e and ê are 2 separate vowels, however, in primary school we were taugh ê is e with a circumflex above etc .. So for me it is intuitively enough to create "ê" with 2 key strokes "e" + "^". It's so cool that I can do "e" + "^" + "~" to get "ễ".
On the practical side, pressing Ctrl+Alt to type "6" doesn't work well for me. After all, there are limited number of keys on the keyboard, so when new characters are mapped into these keys you start seeing complicated "chords" - which I guess you can only execute accurately if you are a professional pianist! With my scheme, I only need at most 8 extra keys. By the way, Vietnamese doesn't use 'f', 'j', 'w', and 'z'. If I wanted, I could use these keys but I won't since it'll be counter-intuitive.
Anyway, now I understand why a book on UNICODE standard that I saw the other day is so thick! But it solves a few problems that I have.
It took me a while to figure out all of that stuff. Thanx Mike.
# Chinh Do on 8 Feb 2007 2:23 AM:
I enjoy reading your blog. I think for the Vietnamese Keyboard to gain wider use, it has to be more practical. I totally agree with Quoc Tran re pressing Ctrl+Alt to type digits... that's just not very practical. Most people I know use something like VPSKeys or Vietkey (my favorite) because these keyboard utilities allow you to use one of the "standard" Vietnamese input methods (Telex, VNI, or VIQR).
http://vietunicode.sourceforge.net/download/vietpad/readme.html has a good summary of the standard Vietnamese language input methods that is in English.
My personal favorite input method is Telex because it can be very fast and it is "touch-typing" friendly.
# Ng Van on 2 Mar 2007 6:29 PM:
You may be interested in the following link:
2011/04/16 Chain Chain Chain, Chain of Dead Keys
go to newer or older post, or back to index or month or day