I’m working on text input methods at the moment. That is, how pressing keys on the keyboard turn into text on the screen.
For English and other languages with a roman alphabet, this is fairly simple. Pressing ‘A’ on the keyboard results in the letter ‘A’ on the screen. But with some languages, this is not so simple. For example:
- Chinese and other ideographic languages have several thousand characters, one key to one character really doesn’t work (unless you have a lot of desk space and very long arms).
- Thai doesn’t have so many characters, but there are rules on how they can be used. For example, there are marks to denote rising and falling tones for sounds, but sounds may not rise and fall at the same time. A good computer program will respect these rules.
There are facilities in both Linux and Windows that deal with these issues. We have made a demonstration program to learn how to integrate the Linux methods of input into our own program.
The picture shows some Japanese text being entered using SCIM. In this case, the word is typed using the phonetic sounds for the symbols (‘konnichiha’*), and the computer shows possible Japanese characters for the sounds**. There are many, many languages we can input using this system and other similar techniques.
Having done this demonstration, our team now needs to get the code out of this demo and into the FieldWorks applications we are porting from Windows. We are making progress on this, but the differences between the two operating systems do add complexity.
**Although it sounds like a strange way to type, using romanisation is a fairly efficient way of getting a language with many characters onto a regular keyboard.