Timothy Guan‑tin Chienยท@timdream

JSZhuyin

Input methods, or IME for short, is a piece of program that is essential for typing East Asian languages on computers. I've been struggling how I can introduce the concept, so I ended up making a tutorial about it.

Visit this interaction demo to learn how East Asian languages work on computers.

JSZhuyin implements a production quality input method for mobile devices entirely in JavaScript. It was one of the first features I made, as a prototype, in Firefox OS. I later decided to pull it out and put it on the Web, since it became apparent that it's unlikely to ship on any model.

Given the complexity of what an IME needs to do, the project has since been the perfect playground for me to try out various JavaScript and browser technologies, including IndexedDB, Typed Array, and Service Workers. A binary array was implemented for data-keeping, to guarantee performance on low-memory environments. Various test suites were built to ensure its correctness and performance, given the intricacy involved.