Nation specific keyboard input

Pavel Krivanek squeak1 at continentalbrno.cz
Mon Sep 20 09:39:11 UTC 2004


 When I let print the parameter of method generateKeyboardEvent: using
Transcript and I type one Czech special character, I get this output on
Win32:

#(2 236857625 50 1 0 0 0 0)
#(2 236857625 147 0 0 0 0 0)ě
#(2 236857656 50 2 0 0 0 0)

But when I try the same thing on PocketPC, I get:

#(2 623602 50 1 0 0 0 0)
#(2 623604 0 0 0 0 0 0)
#(2 623602 50 2 0 0 0 0)

It means, that the second event has wrong character code (zero). Also the
others Czech specific keys return zero. I get the same results on Linux
using KDE so there's impossible to use nation specific characters. We have
to remap English keyboard layout directly in Squeak but it means, that
Squeak has to use separate keymapping inside hosting OS.

The results are from 3.8a image with m17n, but all Squeak images have the
same behaviour. This is the big problem for localization. We cannot remap
keyboard input to MultiCharacters correctly.

What generates the second keyboard event? Virtual machine?

Let's notice that even on Windows the keycodes correspond with no codepage
used in Czech environment (ISO-8859-2, CP-1250). This is the remapping table
for CP-1250:

wrong := #(147, 185, 143, 191, 189, 254, 135, 146, 142, 156, 157, 186, 149,
237, 178, 233, 175, 182, 250, 231, 234, 131, 242, 244, 179, 236).
good := #(16rEC, 16r9A, 16rE8, 16rF8, 16r9E, 16rFD, 16rE1, 16rED, 16rE9,
16rFA, 16rF9, 16r9D, 16rEF, 16rCC, 16r8A, 16rC8, 16rD8, 16r8E, 16rDD, 16rC1,
16rCD,16rC9, 16rDA, 16rD9, 16r8D, 16rCF).


Pavel

P.S: it seems to be the same problem like in "Umlaute in Squeak" thread




More information about the Squeak-dev mailing list