Sorting it all Out Michael Kaplan's random stuff of dubious value Be sure to read the disclaimer here first!
By the way, I am not implying we must do anything at all. It is probably important to start with that disclaimer. :-)
If you think back to previous posts I have done on Vietnamese (here and especially here), it is clear that the implementation has been inspired largely and maybe originally guided by Windows code page 1258.
There is still the problem of the keyboard.
We'll start by looking at it. Here is the base state:
and here is the shifted state:
If you look at the top row, it contains five combining characters. It is not a coincidence that those five characters are the same ones as are in code page 1258:
VK_5 CC = U+0300 : COMBINING GRAVE ACCENTVK_6 D2 = U+0309 : COMBINING HOOK ABOVEVK_7 DE = U+0303 : COMBINING TILDEVK_8 EC = U+0301 : COMBINING ACUTE ACCENTVK_9 F2 = U+0323 : COMBINING DOT BELOW
Okay, so the model here is (on this keyboard) to allow and encourage text that is not really in any particular Unicode normalization form. Instead, it makes extensive use of intermediate forms that are neither Form C or Form D (most of the keyboards that Microsoft ships are in Form C).
Vista does/will fix the issue with the various equivalent forms, so it will be less noticeable. But it does make things a little odd for any time the data is being transferred around, or if the Win32 NLS API is not used to get comparisons done.
Of course it does nothing for the fact that not all of the characters that have been added to the sorting table for Vietnamese can be typed in with the Vietnamese keyboard.
And it does not allow for a more sophisticated model that supports chained dead keys so that one could type the two dead keys and the letter to get the various precomposed characters used in Vietnamese.
Such a keyboard would not be as useful in legacy non-Unicode applications due to all the problems in and lack of compatibility with code page 1258, but it would be better for Unicode support, for the language, and for consistency with the other keyboards on Windows.
With all that said, I have fallen into the trap of coming up with a whole plan for a technical solution without knowing whether there are actual users who are running into problems with the existing support. If there are any native speakers of Vietnamese who have thoughts here, it would help prioritize this issue as opposed to other features that future versions might include. Including features like support for chained dead keys in MSKLC to make creating such keyboards easier!
What would people who need to type Vietnamese like to see?
This post brought to you by "ệ" (U+1ec7, a.k.a. LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW)