|
Unicode and the OpenType
definition completely change the way in which Khmer is handled and
typed.
In Khmer language
–sometimes- vowels that are pronounced after a consonant are written
before that consonant. Preexisting non-standard fonts and keyboards
are prepared to type Khmer in the same order in which is handwritten
(from left to right). Unicode and OpenType specify that now Khmer
must be typed in speech order, that is, a vowel that is pronounced
after a consonant is typed after that consonant, even if it is
written before (the word processor and all other applications will
place the vowel in the right place). There are other important
changes in the way words are typed.
All these factors
command the development of a new keyboard that is well adapted to
the new way of typing. Keyboards are usually developed for typing at
the highest possible speed, based on a study of what characters are
more usually typed one after the other, and other typing frequency
data.
Assignment
of Khmer script characters to individual keys
The KhmerOS project has
designed a keyboard to work on Khmer Unicode. We do not claim to
have the best Khmer Unicode keyboard on the world, but we do have
though a lot about it. What
follow are some
of the most important reasons that have taken us to design
it the way we have.
1) We looked a many
keyboards that exist already, including Dvorak keyboards for fast
typing and phonetic keyboards. At the end we decided that the most
important factor was that the keyboard be accepted by current users.
In order to do that, we needed to change as few letters as possible
from the keyboards that people presently use (ABC and Lemon
Keyboards). Therefore, the KhmerOS keyboard has maintained all
consonants and dependent vowels in the same places, as well as some
diacritics and independent vowels (there only one exception,
mentioned later). All these keys are accessible either through a
direct key or a shifted key.
All Coeng consonants
have been taken away from the keyboards as now they are formed by
the Coeng character and the normal consonant key. Also all
“incomplete vowel parts” (such as the second part of SRA AU) have
been taken out, as well as the shifted positions of some vowels (high
SRA I and similar ones), leaving quite a lot of space in the
keyboard to add the complete vowels (such as SRA OE or SRA IE) and
even then, only three planes are necessary, and not even complete
(Normal, Shift, Alt-Gr).
2) Complete dependent
vowels have been placed in the Normal and Shift states, considering
in all cases their frequency of use. Characters that have a low
usage frequency (independent vowels and diacritics) where placed
under the Alt-Gr (left Alt) key.
3) Following Unicode
methodology, which simplifies enormously the keyboard, Coeng
consonants are constructed using a dead key (placed in letter j) and
then the consonant key (shifted if the normal consonant is shifted).
This has proved to lead to very fast typing.
4) An important decision
was where to put the most used key in Khmer Unicode today, the Zero
Width Space (ZWSP, word separator). This character is needed for
text auto-formatting. Without it lines need to be broken by hand,
and it does not work in websites. The second most used character is
the Coeng sign, which also needed to be placed correctly. The
decision was to place the ZWSP at the spacebar (as a word separator
it is an intuitive place), place the real space in the Shift+Space
position and then place the Coeng in a very easy to access key (in
the middle raw and in the center of the keyboard). Of all the
letters that are easy to access, letter J was the only one that had
a free Shift position (that before was occupied by Coeng NYO), and
therefore the one that could be used with the least changes. NYO (in
letter J) was changed to the Shift position and Coeng was placed in
the NYO position (normal j key).
5) The most usual
dependent vowels such as the one used in the word AUI (give) are
placed in very easy to access positions (Normal plane)..
6) Only consonants,
vowels and diacritics are printed in the keyboard, not divination
signs or lunar dates. These are accessible through the Ctrl+Alt+Shift
combinations, but they are invisible to the 99,9% of user who will
never use them. This leads to a very clean printed keyboard, in
which for each key the two main Khmer letters will be more
prominently printed that the Latin (English) letter for that key (which
will also be smaller) and the character that will be accessible
using the left Alt key.
7) We though for a long
time if the keyboard should be done according to the Chuon Nat
dictionary (the official reference, 20 vowels) or to what is
currently being taught in Cambodia (23 vowels), which has been or
final choice (among other factors, because the 23 vowels system
seems to be favored by the government, and in no case would we want
to confront them on these issues, we have to all work in the same
direction).
The keyboard decription,
as well as the drivers, can be found in our
download page.
Once
the keyboard has been defined, keyboard description files have to
written for Microsoft and Linux, so that the systems will recognise
the keyboard layouts. Tools are widely available to do this work.
In
Microsoft it is possible to create native Microsoft Keyboard drivers
(.kbd files) or two use a keyboard emulator that allows to easily
change from Khmer to Western keyboard and back (as a matter fact,
Microsoft Windows already allows something similar). The driver for
the KhmerOS keyboard is available in the
download page.
In
Unix/Linux the modern way of handling keyboard maps under X is the
XKB extension. XKB is very configurable and powerful, however, it is
also very complex and not well documented. The XKB protocol was not
made thinking about including in the keyboard characters that need
more than one Unicode code-point to be represented, but we have got
around this and the driver is also available for
download..
The
initiative wants to make sure
that
Unicode keyboards are available when the first translated programs
hit the Cambodian "any-software-for-two-dollars" shops. The
initiative will work with computer manufacturers to assure that such
keyboards exist.
Manufacturing keyboards comes down to manufacturing keys for
keyboards, the rest of the keyboard is standard issue. The price of
a standard keyboard in Cambodia is of 5 to 8 US$ in the market. The
wholesale price should be around $4 dollars.
|