I’ve long wished that typing Chinese could be as intuitive as typing English. By that, I mean that you should be able to approach a Chinese keyboard for the first time in your life and type any character you know, regardless of what dialect you speak. You shouldn’t need prior study of an input method like 倉頡. You shouldn’t need to know Mandarin. You shouldn’t even need to know Chinese beyond a cursory study of the writing system. I wanted there to be a Chinese equivalent of hunt-and-peck typing. 看見打字.

For about 15 years now, I’ve attempted a solution to this problem. I’ve had a few periods where I’ve worked on it intensely, but it’s mostly been a background hobby. To be honest, if I had known how long it was going to take, I might never have started.

I’m making it available for use today. Is it perfect? No. But I think it’s good enough to show other people. Also, I’m kinda sick of working on it.

So introducing: http://wuhou.im

I named it after Empress Wu, the only female ruler of imperial China, and somewhat relevant to the issue of Chinese input for the fact that she invented her own new Chinese characters.

For a long time I was stuck on the fact that HTML didn’t provide a way to know exactly which physical key the user is pressing when typing on a website, but thanks to Firefox’s support of DOM Level 3 key events, that is now possible. (If you’re using a different browser, the website might not work properly if you have a non-QWERTY keyboard layout.)

My current employer doesn’t let me work on Open Source projects or personal projects without prior permission, so let me be clear that this is something I developed prior to my current employment. And if I made any minor tweaks recently, you have no proof of that.

I myself do not know Chinese well (my interest in Chinese is mostly as a historical language of Vietnam and a liturgical language of Buddhism), so if you want to leave any comments, I’m gonna need them in English (or French).

Edit: You gotta press SHIFT to see more radicals. I’m sorry that’s not obvious. I’ll try to make that more intuitive.