OpenVanilla
Encyclopedia
OpenVanilla is a free, open-source text-entry (input method
) and processing architecture
, and includes a collection of popular input methods and text processing filters. It serves as a bridge between input methods and the operating system. It was originally designed to offer a better text-entry experience and alternative input methods not found in Apple
's built-in set or suit better the needs for Windows "switchers." However, the developers have since worked on a Microsoft Windows
port
and a bridge between OV and SCIM
on the X Window System
. The Mac OS X
version is compatible with Mac OS X 10.3 (Panther) and Mac OS X 10.4 (Tiger). OV's input methods can also be used through SCIM
on Linux
or FreeBSD
. An experimental Win32 Unicode
version is also available.
Apple was kind of slow in terms of localizing its operating system. In 1987, three years after Apple launched its Macintosh, did the company come up with a Chinese version of its Finder (then the improper name of its later renamed "Mac OS"), Chinese Talk. There were several competing alternatives, but they came and went.
So Apple's Chinese Talk and later its Chinese version of Mac OS has stayed—with one VERY SERIOUS LACK. Its various versions do have offered several Chinese input methods. But one of them—the Phonetic method "Zhuyin"--never (up to this day) comes with a keyboard layout
called Eten Layout, which is closer to the Chinese phonetics.
Many people who started using computers then in the mid-80s learned Eten Layout as their first (and often only) way of getting Chinese characters on their screen. Many of them shied away from Macintosh because of this lack. Apple must have lost countless PC switchers because of this, well, I would say, negligence. Microsoft scored one for its prompt response to Taiwan's local needs. The Phonetic method in Windows always comes with Eten Layout, along with several other layouts.
Apple's Mac OS X, launched in 2002, didn't fare any better. Worse. Another popular input method, Cangjie
, got screwed up this time. Many users complained OS X messed up with what they've been used to in OS 9. Too bad.
In 2003, clkao (Chia-liang Kao)'s ported Chewing, a very popular Chinese input method in Linux/FreeBSD world, to OS X. Thanks to Xcode, a development tool that comes with OS X gratis, it's now possible to carve input methods of one's own on OS X. Viva l'open source. clkao's port is called ChewingOSX and is handed to gugod (Kang-ming Liu) and zonble (Weizhong Yang) in 2004 for further maintenance.
clkao, gugod and zonble's success has inspired lukhnos to scratch his itch, i.e. he needs a Phonetic input method that supports Eten Layout. Hence the birth VanillaInput in July 2004. A month later, Cangjie
support was also added, mending the loss and pain that OS X has caused to many OS 9 users.
But the repercussions of Chewing and VanillaInput do not stop here. People are now asking if it is possible to design new Chinese input methods. Before it was almost impossible. It was mostly up to OS maker's hubris (and they don't care that much for "marginal" needs, such as IM for minority languages). Also, in terms of writing an IM, there are still way many parts (libraries, for example) that are still not "open" source.
In October 2004, lukhnos, gugod, zonble and b6s begin to come up with a new IM framework, OpenVanilla. It's designed on Mac OS X, but the team is working beyond OS X. It intends to be a minimalist and clean design. Its goal: to help people write their own IM. With minimal C++ knowledge. Sans platform-dependent worries.
The pictures you see here make an example of how OpenVanilla helps filling the input method gap. Holo is a language spoken by more than 60% of people in Taiwan. It is the de facto majority language (even though 95% of the people speak and read Mandarin, the official language, to varying competence and extent), but it never has the same standing as Mandarin. One of the reasons is that it is never used in information processing, i.e. on your computer. And one of the reasons it never gets on screen is that there is never a proper, fully functioning input method for it.
Demo movie
This screenshot demonstrates the different "layers" of a functional POJ input method. Holo can be written in either Romanized form (peh-oe-ji) or in Chinese/Han characters. In a way Holo is like Japanese: the written language can
be represented in various ways (in syllabic forms or in ideographic forms). A better Holo input method should evolve
further into the "phrase" layer, in which phrases can be automatically picked up or that users do not need to explicitly assign tones for each syllable.
Input method editor
An input method is an operating system component or program that allows any data, such as keyboard strokes or mouse movements, to be received as input. In this way users can enter characters and symbols not found on their input devices...
) and processing architecture
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...
, and includes a collection of popular input methods and text processing filters. It serves as a bridge between input methods and the operating system. It was originally designed to offer a better text-entry experience and alternative input methods not found in Apple
Apple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...
's built-in set or suit better the needs for Windows "switchers." However, the developers have since worked on a Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
port
Porting
In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...
and a bridge between OV and SCIM
SCIM
The Smart Common Input Method platform is an input method platform containing support for more than thirty languages for POSIX-style operating systems including Linux and BSD....
on the X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
. The Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
version is compatible with Mac OS X 10.3 (Panther) and Mac OS X 10.4 (Tiger). OV's input methods can also be used through SCIM
SCIM
The Smart Common Input Method platform is an input method platform containing support for more than thirty languages for POSIX-style operating systems including Linux and BSD....
on Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
or FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
. An experimental Win32 Unicode
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...
version is also available.
Story
Well, it all began with the idea of "scratching your own itch" (d'après Eric S. Raymond), an itch that lasted for more than 17 years.Apple was kind of slow in terms of localizing its operating system. In 1987, three years after Apple launched its Macintosh, did the company come up with a Chinese version of its Finder (then the improper name of its later renamed "Mac OS"), Chinese Talk. There were several competing alternatives, but they came and went.
So Apple's Chinese Talk and later its Chinese version of Mac OS has stayed—with one VERY SERIOUS LACK. Its various versions do have offered several Chinese input methods. But one of them—the Phonetic method "Zhuyin"--never (up to this day) comes with a keyboard layout
Keyboard layout
A keyboard layout is any specific mechanical, visual, or functional arrangement of the keys, legends, or key–meaning associations of a computer, typewriter, or other typographic keyboard....
called Eten Layout, which is closer to the Chinese phonetics.
Many people who started using computers then in the mid-80s learned Eten Layout as their first (and often only) way of getting Chinese characters on their screen. Many of them shied away from Macintosh because of this lack. Apple must have lost countless PC switchers because of this, well, I would say, negligence. Microsoft scored one for its prompt response to Taiwan's local needs. The Phonetic method in Windows always comes with Eten Layout, along with several other layouts.
Apple's Mac OS X, launched in 2002, didn't fare any better. Worse. Another popular input method, Cangjie
Cangjie method
The Cangjie input method is a system by which Chinese characters may be entered into a computer by means of a standard keyboard...
, got screwed up this time. Many users complained OS X messed up with what they've been used to in OS 9. Too bad.
In 2003, clkao (Chia-liang Kao)'s ported Chewing, a very popular Chinese input method in Linux/FreeBSD world, to OS X. Thanks to Xcode, a development tool that comes with OS X gratis, it's now possible to carve input methods of one's own on OS X. Viva l'open source. clkao's port is called ChewingOSX and is handed to gugod (Kang-ming Liu) and zonble (Weizhong Yang) in 2004 for further maintenance.
clkao, gugod and zonble's success has inspired lukhnos to scratch his itch, i.e. he needs a Phonetic input method that supports Eten Layout. Hence the birth VanillaInput in July 2004. A month later, Cangjie
Cangjie method
The Cangjie input method is a system by which Chinese characters may be entered into a computer by means of a standard keyboard...
support was also added, mending the loss and pain that OS X has caused to many OS 9 users.
But the repercussions of Chewing and VanillaInput do not stop here. People are now asking if it is possible to design new Chinese input methods. Before it was almost impossible. It was mostly up to OS maker's hubris (and they don't care that much for "marginal" needs, such as IM for minority languages). Also, in terms of writing an IM, there are still way many parts (libraries, for example) that are still not "open" source.
In October 2004, lukhnos, gugod, zonble and b6s begin to come up with a new IM framework, OpenVanilla. It's designed on Mac OS X, but the team is working beyond OS X. It intends to be a minimalist and clean design. Its goal: to help people write their own IM. With minimal C++ knowledge. Sans platform-dependent worries.
The pictures you see here make an example of how OpenVanilla helps filling the input method gap. Holo is a language spoken by more than 60% of people in Taiwan. It is the de facto majority language (even though 95% of the people speak and read Mandarin, the official language, to varying competence and extent), but it never has the same standing as Mandarin. One of the reasons is that it is never used in information processing, i.e. on your computer. And one of the reasons it never gets on screen is that there is never a proper, fully functioning input method for it.
POJ input method
POJ (Pe̍h-ōe-jī) is the de facto romanization standard for the Holo language spoken in Taiwan. It is a romanization with a history of over 150 years, and is used to publish a Holo Bible and many other important texts. The OpenVanilla story is just at its beginning. Currently a preliminary implementation is done using rapid prototyping techniques and Objective-C++. To make it platform-independent and more accommodating, it needs to re-implemented. Tons of things to be done. But the idea is there. Save the Objective-C part that is mostly data structure things, OpenVanilla's POJ IM module is a pure algorithm code that deals exclusively with keyboard mapping and syllable transformation. No user interface code there. There is no reason why an IM developer on earth would need to know that.Demo movie
This screenshot demonstrates the different "layers" of a functional POJ input method. Holo can be written in either Romanized form (peh-oe-ji) or in Chinese/Han characters. In a way Holo is like Japanese: the written language can
be represented in various ways (in syllabic forms or in ideographic forms). A better Holo input method should evolve
further into the "phrase" layer, in which phrases can be automatically picked up or that users do not need to explicitly assign tones for each syllable.
See also
- Input method editorInput method editorAn input method is an operating system component or program that allows any data, such as keyboard strokes or mouse movements, to be received as input. In this way users can enter characters and symbols not found on their input devices...
- Chinese input methods for computersChinese input methods for computersHundreds of Chinese input methods are available for entry of Chinese characters into computers, but most keyboard-based methods rely on either pinyin phonetic readings or root shapes in Chinese characters...
- Cangjie input methodCangjie methodThe Cangjie input method is a system by which Chinese characters may be entered into a computer by means of a standard keyboard...
- Keyboard layouts of Traditional Chinese input methods
- Cangjie input method
- Chinese input methods for computers
- Zhuyin (BoPoMoFo)
- SCIMSCIMThe Smart Common Input Method platform is an input method platform containing support for more than thirty languages for POSIX-style operating systems including Linux and BSD....