Japanese Input for PocketPC

For Windows CE 3.0 - Pocket PC 2003.

This is just a small change from the previous version. The PocketPC that I have is a UK English colour version of Compaq iPAQ with 32 Mbytes memory. I have been using it for a while and it seems to work OK, plus it's lighter than carrying 2 or 3 dictionaries, but there are probably some bugs or strange features that I don't know about.

Before installing this version, remove the old version.

MSGothic.cab

This is Microsoft's MSGothic.ttc Japanese true type collection. Since font linking does not seem to work the same, I deleted the registery settings.

Its best to install this file first. Download the cab file to the PocketPC and run it, the normal operation the cab file gets deleted after it's installed. Since I use the embedded C++ development tools I don't usually have to do this. But it can be done using ActiveSync to copy the file over, and then tap on the file name from within file explorer to install it. In Pocket Word, under edit/format/font there should be "MS Gothic" and "MS PGothic".

By using MS Gothic font on my PC and PocketPC I find I can use Microsoft ActiveSync to transfer Word and Excel files between the two without any major problems.

Deleteing a font file is not so easy. As soon the machine starts up Windows sees the file and after that its in use by windows and so it cannot be deleted. Fortunately, Windows CE seems to be the same as Windows NT and rename is allowed even if the file is in use. So to delete msgothic.ttc you have to rename it with a different file extension, eg msgothic.txt, do a soft reset so the file is not in use, then delete it. Unfortunatly, the built in file explorer does not show or change the file extension, so you have to do this from the PC or some other software.

JPenSIPC.Cab or JPenSIPA.cab

This file is a Japanese Pen Soft Input Panel DLL, Stroke data tables, and the K16X16.FON file. Download the cab file to the PocketPC and run it, the normal operation the cab file gets deleted after it's installed. Since I use the embedded C++ development tools I don't usually have to do this. But it can be done using ActiveSync to copy the file over, and then tap on the file name from within file explorer to install it. The SIP selection should now show "Japanese Input" as well as "Character Recogniser" and "Keyboard".

One known bug is that on many non English versions of CE machines the "Program Files" directory has another name so the input program cannot find the stroke data file and display font. The windows CE installer uses translated names for directories but my program uses the English names, so it does not find the files. If you don't have a directory/folder called "Program Files" then create one and move the files "K16x16.F00" and "Strokedata.txt" into it.

The code is based on many other peoples work. The basic SIP is from Chapter 13 of "Programming Windows CE" by Douglas Boling. I used a Unicode to JIS table from http://www.unicode.org to access the K16X16.FON file. The stroke recogniser is based on Todd David Rudicks's JavaDict, Robert Wells's Jstroke and Owen Taylor's KanjiPad. This recognises just under 2000 Kanji characters. I have added hiragana, katakana, and some other strokes. Recently I also added numbers and lower case letters. Mostly it works well, but some characters are a bit hard to enter and probably need some adjustments to the stroke tables.

This SIP display is at the bottom of the screen, like the other SIPS's. There are 10 candidate character buttons on the left, and a drawing grid on the right. The method of use is to draw the character on the grid, waiting no more than 0.5 seconds between strokes, then wait 0.8 seconds and the recogniser will find the best 10 matches and clear the drawing area. The best match is entered into the program that is running. Tapping one of the other 4 characters deletes the first character and enters the selected character. Kanji are shown with white background, hiragana with yellow, and katakana with blue. Drawing new complex kanji can be a problem, but there is a small bug in the program that helps. Tapping outside the drawing area stops the timer, so this can be used between drawing parts of the character, there is no way to start the timer again except by drawing some more strokes so don't tap outside after drawing the complete character.

The most important factor is the number of strokes, if this does not match then the recogniser can never find the character. When the number of strokes is right, they still have to be drawn in the right direction and in the right order. Small hiragana and katakana should be drawn using only one quarter of the drawing grid. The small circle in pa, pi, pu etc can be drawn either way round, starting at the top. With some characters (i,ka, ko) drawing the small hook at the start or end of a main stroke can improve the chance of recognition.

Additional gestures or characters are:
Full stop circle, 1 stroke, draw a small circle, start at the top.
Open quote, 2 strokes, draw left going stroke, followed by down stroke.
Close quote, 2 strokes, draw down stroke, followed by left stroke.
Comma, 1 stroke, draw a short 45 degree down and left stroke.
Space, 1 stroke, draw short down and then left stroke.
New line, 1 stroke, drawn short down and then right stroke.
Delete, 1 stroke, draw right going stroke.

Other hardware

I have only tried these programs on one machine, and I have compiled it in the CEF format so it should work on any Windows CE 3.0 machine. Since I started writing this code, Compaq released a monochrome screen version with half the memory. The programs should work on this but the lack of colour will make input harder.


Mike Johnson

E-mail: mikejohnson @ dsl . pipex . com

1 Feb 2003