原文:http://www.cnblogs.com/Lvkun/archive/2012/12/27/open-source-input-method.html
开源中文输入法
在Windows上面中文拼音输入法数不胜数。简单数了一下自己用过,就有六种以上:
- 智能ABC
- 微软拼音
- 紫光拼音
- 搜狗输入法
- 谷歌输入法
- QQ输入法
- ......
可参考wikipedia 中文输入法列表,以及小众软件 我最喜欢的《拼音输入法》。在手机端各种拼音输入法种类更多。
而在Unix和Linux平台上也存在不少中文输入法,它们不仅免费,而且开源。如果想要了解输入法的实现,不妨从它们入手。
输入法大致可分为三部分:
- 输入法框架
- 输入法引擎
- 输入法界面
关于输入法结构的介绍,可以参见这篇文章Packaging Input Method Framework and Engines。
输入法框架
Windows系统提供统一的输入法框架,在Windows XP和之前版本是IMM(Input Method Manger),之后是TSF(Text Service Framework)。搜狗,谷歌,QQ等输入法都是在IMM框架下面实现了引擎和界面。而Linux下面输入法框架并不统一,这给兼容性带来很大问题。
IBus
Intelligent Input Bus。相对较新。使用C和Python开发。
特点:
- 输入法引擎可以按需加载\卸载
- 支持系统托盘(Systray)
- 支持XKB
- 配置更改即可生效
- 提供C和Python的绑定
提供以下拼音输入法引擎:
- ibus-pinyin IBus主要开发者开发的
- ibus-googlepinyin 由Android项目移植过来
Scim
Smart Common Input Method。历史比较悠久,曾作为多数Linux发行版默认的中文输入法。使用C++开发。
特点:
- 使用C++编写,完全面向对象。
- 高度模块化。
- 非常灵活的架构,即可以用作动态加载的库,也可以作为C/S输入法环境。
- 简单的编程接口。
- 完全支持i18n,及UCS-4/UTF-8编码
- 包含很多方便实用的函数来加速开发
- 特性非常丰富的GUI Panel
- 统一的配置框架
提供以下拼音输入法引擎:
- scim-ccinput
- novel-pinyin
- scim-pinyin
- fitx
- scim-sunpinyin
Fcitx
小企鹅输入法,Free Chinese Input Toy for X。
特点:
- 支持主题(Theme)
- 支持系统托盘(Systray)
- 支持Kimpanel
- 支持KDE配置模块
- 全局简繁转换
提供以下拼音输入法引擎:
- fcitx-pinyin
- fcitx-sunpinyin
- fcitx-googlepinyin
Rime
全名中州韵输入法,不仅仅是一个输入法,而是一个输入法算法框架。 非常有创意地通过YAML格式的配置文件,定制输入法。参见RimeWithSchemata
Rime 是一款强调个性的输入法。 Rime 不要定义输入法应当是哪个样、而要定义输入法可以玩出哪些花样。 Rime 不可能通过预设更多的输入方桉来满足玩家的需求;真正的玩家一定有一般人想不到的高招。
它支持主流操作系统:
- Linux: 中州韵 ibus-rime
- Windows: 小狼毫 Weasel
- Mac OS X: 鼠须管 Squirrel
输入法引擎
除了输入法框架自带的pinyin输入法引擎,sunpinyin,libgooglepinyin比较常用。
sunpinyin
sunpinyin是基于统计语言模型(Statistical Language Model)输入法引擎。支持上述的三个输入法框架。 Mac下面的FIT输入法也将sunpinyin作为输入法引擎。参见FIT携手sunpinyin。
SunPinyin是由Sun中国工程研究院的北京国际化中心开发,并贡献给开源社区的。最初由张磊(Phill.Zhang)博士独立完成,后来 由众多的社区开发者共同推进,目前的版本是2.0.x。支持整句输入,能够记录用户的词汇和语言模型,从而训练出更适合你的输入法。
在Google code的项目的wiki上面,有三篇非常详细的代码导读系列文章,可以让有兴趣的人能有相对深入了解的途径。 很少能看到类似关于拼音输入法引擎如何实现的文章。
libgooglepinyin
Google pinyin Android 版本(注意不是桌面版本)是曾经开源的,但从2009年后就再未更新。libgooglepinyin就是从这个版本移植过来的。同样的项目还有scim-googlepinyin、fcitx-googlepinyin。
Github上还有反向工程版本com.google.android.inputmethod.pinyin
相关推荐
改编自一个网上js输入法。正在修改完善中。已经添加了许多功能
syszuxpinyin是一款开源的嵌入式qt输入法,原版一直存在一个乱码的问题,现在qt一般设置为UTF-8编码,可是该输入法只支持GBK编码,所以对其进行稍微修改了下,支持UTF-8编码,亲测不再乱码,代码中需要指定编码方式...
《拼音Demo:深入解析谷歌开源中文输入法源码》 谷歌开源的PinyinDemo项目,是其对中文输入法的一种实现,提供了丰富的源代码供开发者参考和学习。这个项目不仅包含了一个完整的拼音输入法框架,还附带了详尽的注释...
LVGL中文输入法代码是指在LVGL库中实现的、支持中文输入的功能模块。这个功能使得在LVGL上运行的应用程序能够接收和处理中文字符输入,为嵌入式设备的本地化提供了便利。 在LVGL库中,中文输入法通常会涉及以下几个...
《C++手写中文输入法MFC实现详解》 C++是一种通用的、面向对象的编程语言,其强大的性能和灵活性使其在各种领域都有广泛的应用,包括开发输入法软件。MFC(Microsoft Foundation Classes)是微软提供的一个C++类库...
【极速五笔——开源输入法】是一款以快速、高效为特点的中文输入法软件,它以开源的形式提供给用户,鼓励社区参与开发和优化。开源意味着源代码对公众开放,任何人都可以查看、学习、修改并分发代码,这使得极速五笔...
这两种输入法在中国及华人社区中非常常见,中文输入法允许用户通过键入汉字拼音来选择相应的汉字,而五笔输入法则依赖于汉字的五笔字型编码。 首先,我们来理解C#的基本概念。C#是微软公司推出的面向对象的编程语言...
5. **字库与词库**:为了进行字符和词汇的识别,源码中可能会包含字库(包括常用汉字和特殊字符的模板)和词库(常见词汇的集合)。 6. **性能优化**:为了提供流畅的用户体验,源码中可能涉及到各种性能优化技术,...
华宇拼音输入法V6.9的源码中包含的字库,存储了大量汉字的拼音和五笔码信息,用于快速响应用户的输入需求。词库则包含常见词汇和短语,通过统计分析和用户习惯学习,确保输入法能提供最合适的候选词。开发者可以通过...
"CentOS中文输入法rpm安装包" 这个标题表明我们要讨论的是在CentOS操作系统中安装中文输入法的过程,采用的是RPM(Red Hat Package Manager)包管理方式。RPM是Linux系统中广泛使用的软件包管理器,用于安装、升级、...
Red Hat Linux,作为一款流行的开源操作系统,虽然默认支持多种语言,但并不包括中文输入法。这篇教程将详细解释如何在Red Hat Linux中安装并配置中文输入法。 首先,我们需要了解的是,Linux系统中的中文输入法...
这是一款不错的开源输入法应用源码,该应用不但可以支持输入中文之外,还可以输入英文,日语的功能,而且还带有多种风格的输入法可以提供给用户切换等,功能非常强大,是一款非常难得的android输入法应用。...
【标题】中的“中文首拼代码输入法 C++中文输入法 自由中文输入法 多行短句输入法”指的是一个编程实现的中文输入法系统,它基于C++语言开发,具备首拼音编码功能,同时支持五笔码和拼音的混合输入。这种输入法旨在...
在Red Hat Linux 9操作系统中,用户可能会遇到需要安装中文输入法的需求,以便更方便地进行汉字输入。本文将详细讲解如何使用fcitx-3.0.0-1.i386.rpm这个rpm安装包在Red Hat 9上安装中文输入法。 首先,fcitx是一个...
本项目名为"开源输入法 源代码 中文 日文 英文 带联想输入值得参考",表明这是一个支持多语言(中文、日文、英文)的输入法,并且包含联想输入功能。其核心是用JNI(Java Native Interface)和C语言编写的字典库,这...
1. **fcitx**:fcitx(五笔拼音输入法框架)是一款开源的输入法框架,支持多种语言输入,特别是在中文输入方面有着良好的表现。它提供了丰富的插件,可以根据个人需求进行扩展。 2. **scim**:scim(Smart Common ...
在Linux操作系统中,由于其开源和自由的特性,用户可以选择多种不同的中文输入法来满足日常的文本输入需求。本文将详细探讨Linux系统下的中文输入法,包括其重要性、常见种类、安装方法以及使用技巧。 一、Linux...
4. **LICENCE**:可能包含了软件的开源许可协议,表明该输入法遵循的开源条款。 5. **assets** 文件夹:可以放置非结构化的数据文件,如字体、音频或自定义的XML文件。 6. **gen** 文件夹:自动生成的Java源代码,...
在Linux操作系统中,由于其开源和自由的特性,用户可以根据自己的需求定制系统功能,包括选择适合自己的中文输入法。这个“Linux中文输入法安装包”提供了多种输入法选项,使得在Linux环境下输入中文变得更加便捷。...
在处理中文输入法时,对于非中文环境的操作系统来说,通常需要额外安装支持中文显示和输入的软件包。标题提到的“centos中中文输入法包”主要涉及如何在CentOS上安装和配置中文输入法。 `fonts-chinese-3.02-12.el5...