原文: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输入法。正在修改完善中。已经添加了许多功能
《拼音Demo:深入解析谷歌开源中文输入法源码》 谷歌开源的PinyinDemo项目,是其对中文输入法的一种实现,提供了丰富的源代码供开发者参考和学习。这个项目不仅包含了一个完整的拼音输入法框架,还附带了详尽的注释...
LVGL中文输入法代码是指在LVGL库中实现的、支持中文输入的功能模块。这个功能使得在LVGL上运行的应用程序能够接收和处理中文字符输入,为嵌入式设备的本地化提供了便利。 在LVGL库中,中文输入法通常会涉及以下几个...
《C++手写中文输入法MFC实现详解》 C++是一种通用的、面向对象的编程语言,其强大的性能和灵活性使其在各种领域都有广泛的应用,包括开发输入法软件。MFC(Microsoft Foundation Classes)是微软提供的一个C++类库...
【极速五笔——开源输入法】是一款以快速、高效为特点的中文输入法软件,它以开源的形式提供给用户,鼓励社区参与开发和优化。开源意味着源代码对公众开放,任何人都可以查看、学习、修改并分发代码,这使得极速五笔...
这两种输入法在中国及华人社区中非常常见,中文输入法允许用户通过键入汉字拼音来选择相应的汉字,而五笔输入法则依赖于汉字的五笔字型编码。 首先,我们来理解C#的基本概念。C#是微软公司推出的面向对象的编程语言...
5. **字库与词库**:为了进行字符和词汇的识别,源码中可能会包含字库(包括常用汉字和特殊字符的模板)和词库(常见词汇的集合)。 6. **性能优化**:为了提供流畅的用户体验,源码中可能涉及到各种性能优化技术,...
华宇拼音输入法V6.9的源码中包含的字库,存储了大量汉字的拼音和五笔码信息,用于快速响应用户的输入需求。词库则包含常见词汇和短语,通过统计分析和用户习惯学习,确保输入法能提供最合适的候选词。开发者可以通过...
在上述描述中提到了一组与SCIM(Smart Common Input Method)相关的软件包,这是一个流行的开源输入法框架,适用于多种Linux发行版。以下列出了安装中文输入法所需的一些关键组件: 1. scim-libs-1.4.4-41.el5.i386...
在Linux操作系统中,由于其开源和自由的特性,用户可以选择多种不同的中文输入法来满足日常的文本输入需求。本文将详细探讨Linux系统下的中文输入法,包括其重要性、常见种类、安装方法以及使用技巧。 一、Linux...
4. **LICENCE**:可能包含了软件的开源许可协议,表明该输入法遵循的开源条款。 5. **assets** 文件夹:可以放置非结构化的数据文件,如字体、音频或自定义的XML文件。 6. **gen** 文件夹:自动生成的Java源代码,...
这里我们选择安装免费开源的中文字体ttf-wqy-zenhei。通过 SSH 输入以下命令: `sudo apt-get install ttf-wqy-zenhei` 在安装过程中,如果碰到 "(Y/n)",都选择 "y"。安装完成后,我们可以看到中文字符了。 安装...
OpenWNN是一款基于日本Wnn技术的开源输入法软件,它提供了高效、智能的汉字输入体验。这个开源项目旨在为开发者提供一个可定制化的输入法框架,使其能够根据自身需求进行二次开发。在描述中提到的“加入了从串口接收...
通过分析和学习这个开源项目,开发者可以了解到输入法的实现原理,以及如何利用Android SDK来创建高效、用户友好的输入法应用。同时,对于想要进一步定制输入法功能或开发新的输入法服务的人来说,这份源码提供了...
QT中文输入法是一种基于开源框架QT 4.7.0开发的输入法工具,它旨在为用户提供方便快捷的中文输入体验。QT是一个流行的C++图形用户界面库,它支持多种操作系统,包括Windows、Linux和macOS等。通过利用QT的强大功能,...
其中,Palm OS和Windows CE都有成熟的汉字输入法解决方案,但嵌入式Linux系统具有开源和可定制的优势,可以根据实际需求裁剪内核。 在嵌入式Linux下,MicroWindows是一个广泛应用的图形系统,它的API开发的软件占用...
在深入探讨如何在CentOS 6.2上通过YUM包管理器安装中文输入法之前,我们先简要了解一下CentOS以及YUM的基本概念。CentOS是基于Red Hat Enterprise Linux (RHEL)源代码编译而成的一个开源操作系统,它旨在提供一个...
《iOS应用源码解析:SunPinyin拼音输入法引擎》 在iOS开发中,本地化输入法的实现是一项复杂而重要的任务。SunPinyin是一款专为iOS设备设计的拼音输入法引擎,它被广泛应用于FIT输入法,服务于iPhone、iPad以及Mac...
QT实现的中文输入法程序,是针对那些需要在QT应用程序中集成中文输入功能的场景而设计的。这个项目通常会涉及到以下几个关键知识点: 1. **QT库**:QT库是C++开发的一个开源框架,包含了大量的类和函数,支持创建...