View Full Version : Onscreen keyboard for China?

02-01-2010, 11:22 AM
Hi all,

I've got an assignment coming in where I'll need to do a bilingual on-screen keyboard for a touch screen kiosk. I've used the awesome tutorial found here...


...before, but I haven't got a clue how Chinese characters could be supported or even how they should work!?!

Anyone able to point me in the right direction?

Thanks, J.

03-26-2010, 08:13 AM
There are quite a number of different input systems for Chinese. You can read about them on wikipedia: Chinese input methods for computers (http://en.wikipedia.org/wiki/Chinese_input_methods_for_computers)

It is my understanding that pinyin is by far the most common, especially in the mainland. In this system, the user types the word phonetically using the Latin/European alphabet and is then shown a menu of characters matching that pronunciation. (There tends to be a pretty large selection for a given syllable.) Anyways, they select the character they want and repeat.

That's basically how it works, but most Chinese users will be used to using more advanced systems that prioritize the most common characters and allow the user to input common combinations of characters all at once. Honestly, it's more than a bit much to expect someone who isn't familiar with the language to design something like this, so I hope you can find some code somewhere that does it for you.

I made a Chinese keyboard program once, but not using the pinyin system. This is the Cang Jie system, which is not as common or well known. A pinyin keyboard would work similarly, but with Latin characters in the smaller box. With pinyin, you'd have many more characters matching up to each letter combination, so a selection option would be essential.

If you want to see how it works, type (not click, the onscreen keyboard is just for reference) "AMYO", then hit enter. It should show the character "是". Here it is. (http://runechart.com/cjType.swf)

You could also try installing the pinyin input method on your computer and trying that out. Like I said, unless you find a preexisting solution it's going to be almost impossible to try to design this unless you're familiar with the language.