uim/简介
Uim是一个输入法框架。它提供各种基于库和工具集构建的输入法,用于根据在输入法中定义的预定义规则将以特定字符子集输入的字符串转换为另一个子集。
uim的一个常见用途是将拉丁字符(例如英语中使用的字符)的键盘输入转换为中文、日文、韩文或越南文字符。对于中文和日文,可以对应多个字符字符串的输入序列将打开一个候选列表,以便选择所需的字符串。
通常,输入法将接受键盘输入并更改(手动或通过用户交互)输入字符串为不同的字符串,然后将其传递给应用程序。由于应用程序的输入法实现和字符集的特性差异很大,任何输入法框架在扩展其支持时都会面临可扩展性问题。为了最大程度地减少这些问题,uim采用了高度模块化的设计。
核心库与可加载的软件模块进行交互,这些模块实现了特定的自然语言(例如中文或韩语)或特定于输入法的功能(例如键盘映射切换)。这些模块(一个或多个)构成特定的输入法(例如中文的拼音输入法)。Uim捆绑了一些这样的模块,但其他的则作为单独的项目开发(例如Anthy、Mana和PRIME)。
与其他输入法框架主要基于的客户端/服务器模型形成对比的是,uim通过称为桥接的特定于应用程序的模块实现了与应用程序的库级接口。选择这种布局主要是为了简单起见,将来可能会更改。
uim的核心库主要用C编写,以确保稳定的ABI(应用程序二进制接口),因为在C++中维护ABI有时很困难。由于C在直接使用方面非常原始,uim有一个嵌入式Scheme解释器,可以提高开发效率。(uim的一些内部部分——xim和scim桥接——是用C++编写的。)
提高输入法开发人员的效率以促进高质量输入法是uim的一个优先事项。尽管它稳定且完全可用,但目前对桌面环境可用性的努力较少,而其他输入法框架则优先考虑这一点。
Uim是在Linux上开发的,但可以移植到其他*NIX操作系统,并且已知也可以在Linux Zaurus和Mac OS X上运行。
任何应用程序都可以使用uim,只要存在一个桥接使其能够连接到uim库。X应用程序可以使用uim-xim,而控制台应用程序可以使用uim-fep。除了这些之外,GTK+、Qt和Emacs还有自己的桥接;分别为gtk+-immodule、qt-immodule和uim-el。
有几种其他可用的输入法。大多数针对特定语言,但uim、SCIM和IIIMF(由创建XIM的人编写)提供了模块化结构,以便于扩展(此类软件套件通常称为输入法框架)。这些之间的主要区别在于SCIM和IIIMF的客户端/服务器结构,而uim仍然通过桥接与应用程序保持库级直接连接。
- 中文
- 唯一似乎仍在积极开发的输入法是Fcitx(适用于X的免费中文输入工具)。其他输入法包括minichinput(自2003年7月17日以来没有开发)和xcin(显然自2005年2月10日以来没有开发)。
- 日文
- Anthy、PRIME、canna和kimera似乎是主要的参与者(除了最后一个之外,所有其他输入法都可以在uim下作为转换引擎使用)。最后,值得一提的是sumibi,因为它有一个在线实现的输入法。
- 越南语
- X-unikey似乎是唯一的一个。
Uim自带了一些输入法,但其他与Scheme解释器兼容的输入法可以单独安装。后者在其官方网站上有链接,列在下面。
中文 | 功能 |
---|---|
新拼音(简体) | |
拼音(Unicode) | |
拼音(繁体) | |
日文 | |
Anthy | 用户可自定义词典。可选的かな和AZIK键盘映射模式。 |
Mana | 使用隐马尔可夫模型进行汉字转换。 |
PRIME | 一种预测输入系统,根据用户的输入历史为部分输入的单词提供建议。 |
SKK | 没有语法分析。 |
T码 | |
TUT码 | |
韩文 | |
Byeoru | 支持完整的韩文字符集和韩语/汉字转换 |
韩语(2-beol) | |
韩语(3-beol) | |
韩语(罗马字) | |
越南语 | |
VIQR | |
其他 | |
uim-m17nlib | 支持多种语言 |
国际音标 |
这些项目不是uim的一部分,但可能对它的用户感兴趣。
- Uim-festival(版本0.1.0——发布于2005年8月29日)。带有Festival TTS引擎的Uim(您的计算机在您键入时会朗读)。
- Uim-ruby(版本1.10.2.6——2004年6月26日)。
- GKrellUIM。适用于GKrellM的插件。
- wmuim。一个用于uim的WindowMaker 扩展程序。
- libuim-ruby。libuim 的 Ruby 语言绑定。
- uim-tomoe-gtk。Tomoe 手写识别算法的图形界面前端。
- MacUIM Mac OS X 桥接