-
Notifications
You must be signed in to change notification settings - Fork 69
What's uim?
Uim is a multilingual input method library, whose goal is to be a flexible development platform and useful user environment for input methods of all languages.
There are some input method frameworks in the world. What is the feature of uim and how it is different from other input method frameworks?
uim works in many environments, including of course general desktop systems such as GNOME or KDE. It also supports Linux Zaurus, Mac OS X.
| uim on Linux Zaurus | uim on MacOS X |
|---|---|
![]() |
![]() |
Many input method frameworks such as XIM are implemented as client/server systems. But uim is a library, not a server.
Most users don't need an input method system at all or only need simple, table-based converters. Such users don't require or are unwilling to install a complex input method system, so we want to keep uim simple.
- All X applications. (You can use them with uim-xim.)
- Gtk+ applications such as gedit. There are two way to use uim. Through uim gtk-immodule directly, or through uim-xim. We recommend using uim through gtk-immodule directly.
- All Qt applications. There are two ways to use uim, through XIM or Qt-immodule. If you want to uim with Qt-immodule with old Qt3, you need to use a patch.
- All console applications. (You can use them with uim-fep.)
- Emacs (You can use it with uim.el).
- All Mac OS X applications. (You can use them with MacUIM.)
| application type | modules |
|---|---|
| GTK+ 2 applications | uim-xim, uim-gtk2 |
| GTK+ 3 applications | uim-xim, uim-gtk3 |
| Qt 3 applications | uim-xim, uim-qt31 |
| Qt 4 applications | uim-xim, uim-qt4 |
| Other X applications | uim-xim |
| console applications | uim-fep |
| Emacs | uim.el |
| Mac OS X applications | MacUIM |
uim-xim is not recommended due to its feature limitation
- requires a patch
- Chinese
- New Pinyin (Simplified)
- Pinyin (Unicode)
- Pinyin (Traditional)
- WuBi 86
- ZhengMa
- Chewing (Traditional)(https://github.com/uim/uim-chewing)
- Japanese
- Ajax IME
- Anthy
- Canna
- FreeWnn
- Mana
- Mozc (http://macuim.googlecode.com/svn/trunk/Mozc/)
- PRIME
- SKK
- Social IME
- T-Code
- Try-Code
- TUT-Code
- Yahoo! Japan API
- Korean
- Byeoru
- Hangul (2-beol)
- Hangul (3-beol)
- Hangul (Romaja)
- Emacs-style Latin characters input
- ELatin
And you can input many languages by using uim-m17nlib, see (http://www.m17n.org/m17n-lib-en/)
We can ensure a stable ABI, which is crucial to uim since it's a basal library. Particularly, maintaining an ABI in C++ is sometimes difficult.
Because C is too primitive to work with directly. Scheme lets us be more productive.

