rime中州韻输入法引擎完美地封装了输入法码表管理和输入法接口,提供了码表可定制的配置方案,内置了很多常用的拼音方案,用正则巧妙地解决了一些转换和解析,使用了一些新C++标准的特性,如果是C++爱好者,学习rime的代码会受益匪浅,我第一次打开rime的代码,对里面的an<>和the<>就想了一下,因为确实以前没遇到后,后来结合一些资料,理解了这是对指针的一种封装 。
rime的总结,有比较官方的语言,很经典,这里推荐给大家:
Rime的代码包含一个C++的核心算法库、一个用来维护输入方案和词典文件的数据集、以及分别为Linux、Mac、Windows平台开发的输入法前端。
俺的主张是不重复造轮子,除非需要把轮子造得更圆。为了同时保证开发效率和软件的品质,Rime引用了大量的开源程序库。例如用yaml-cpp做YAML文件的解析、用darts-clone提供词典中的trie树结构、用kyotocabinet做为支持用户词典的数据库、用opencc做高质量的汉字繁简转换。为了把好的功能提供给更多用户,第三方库的代码能否跨平台,是一个重要的选择标准。Boost库提供的正则表达式、文件系统操作、进程间通信、线程处理等设施,解决了很多跨平台的麻烦。正因为在这些优秀开源软件的基础上开发,Rime才得以集中精力解决前人未曾解决的输入法难题。
我和Zou Xu同学一起完成了Rime算法库的大部分代码。这个输入法逐渐为人所知后,收到不少朋友提交的patch,或是修复程序漏洞,或是添加新的功能。Windows和Mac平台上,输入法介面的许多重要特性,如对候选字排版的控制以及配色主题支持,都靠网友们帮忙开发。Linux系统上的fcitx-rime绑定则是由Fcitx输入法团队独立完成的。
Rime收录的输入方案包含了一些开放版权的输入法如仓颉码、五笔86版、五笔画、粤拼等,还有一些网友创作的输入法如各种双拼方案、宫保拼音、吴语上海话、苏州话拼音、中古汉语拼音……Rime用家的创造力是令人赞叹的,我们只能从中选取有代表性的几例随输入法一起发布。
而词典数据部分更是汇集了许多人的劳动。Rime最初使用的词汇表,来源于Google开源的Android拼音词典,以及CC-CEDICT汉英词典。为了做到传统汉字和简化字并蓄,我又对照新酷音输入法(Chewing)及开放中文转换(opencc)的词库,对所有词汇的传统字形做了修正。输入法发布后,不断根据网友的反馈查漏补缺,更有瑾昀、雪斋、攴君等几位仁兄,持续地提交使用中发现的错字、错音,并整理添加了许多有用的词汇。多亏了诸君努力,虽然我们受限于资源只能维护一个小而精的词库,但其品质还是得到了用家认可。
这里强调的是rime的开发者佛振是郑州人,河南出个开源名人不容易,祝愿rime发展更好,欢迎大家给rime进行赞助。
我也开发过几个输入法,但是在思想层次上,确实比不上rime,比如我码表用二分法处理,也能实现,但是darts-clone的效果肯定比二分法要强的多,所以说rime的学习要点就在这几个开源项目上,先学会这几个开源项目的使用,比如boost的环境结合和boost函数的调用,还有yaml-cpp的使用。
因为我以前开发过输入法,所以看rime的代码比较轻松,但是里面抽象层次高,一般人不太看明白。想做一些rime定制开发,可以聊聊。
rime的编译很方便,用windows下编译指导文档里的步骤很轻松,但是基于rime实现的小狼豪输入法编译,我遇到了一些困难,代码从github上下载总是失败,不过相信会解决。
当然作为一个开源项目,在产品化上肯定是比不上大厂的输入法,比如皮肤展示方面,rime有皮肤底层,但是可选的皮肤比较少,形式也比较单一。另外有些使用细节上不太人性化。但是,只要调校得好,配置好自己相中的输入方案,rime长期打字使用是没有问题,我认识不少人用rime自己做语言方案,这确实是rime的亮点。不过对于一些语音非标准的输入法,rime是无能为力的,锐英源软件就实现过这类非标准输入法。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至22018681@qq.com 举报,一经查实,本站将立刻删除。