BeCJK输入法移植

来源:互联网 发布:国内酒店预订网站 知乎 编辑:程序博客网 时间:2024/06/04 19:21
这段时间忙于各种事情,BeCJK 输入法完成了移植,现在能够静下心来做一个总结。

BeCJK 简史


BeCJK 原本是 BeOS 上的一个输入法,原作者为 Anthony Lee,中文名字,还真不知道,姑且称为老李吧。现在老李早已经不负责该输入法了。

现在 BeCJK 的源码来自于 Andraw Bachmann 。

我的主要工作就是把这部分的代码能够在 Haiku 下完成编译,并且能够在 Haiku 操作系统中正常的运行,方便中文的爱好者对 Haiku 系统的使用。在进行移植的时候,我使用了现在开源社区中使用比较多的一种构建工具,叫做 scons ,而不是 make 脚本。关于 scons 的使用方法,可以参考 scons 官网http://www.scons.org/

BeCJK 源码


BeCJK 的源码主要由三个部分组成,还包括一些小的字典转换工具,cin2dict,XDict,MuTerm 等,我们在构建源代码的时候,将这些小工具的代码和可执行文件进行了删减,并且对原来的代码结构进行了重新的排布以方便和适应新的代码构建工具。主要的三个部分如下:

  • besavager,是 Savager Workroom Development Toolkit for BeOS 的简称,应该是原作者自己方便于在原 BeOS 上面进行开发,自己在系统 API 上定制的一个开发库,在新的源码中将编译为一个动态库和一个静态库。
  • src,是 BeCJK 输入法的主代码,在构建中会生成一个类似于共享库的 Add-on,属于 Haiku/BeOS 上特有的一种格式,主要应用于内核可动态加载驱动和内核模块,包括音视频格式处理模块.
  • data,是 BeCJK 输入法的输入法模块,包括汉语拼音,仓吉输入法,韩语和日语输入组件,在 BeCJK 输入法启动之后,会加载这些模块,然后提供不同的输入法。

上述的这些模块在完成构建后分别会被打包到相应的路径,具体情况可以查看 Haikuports 中 BeCJK 的 recipe 文件或者 BeCJK 的 hpkg 包。

说明


BeCJK github 仓库:https://github.com/pengphei/becjk
BeCJK recipe 文件:https://bitbucket.org/haikuports/haikuports [查阅其中 app-i18n/becjk 目录]

手动测试:因为 Haiku 包管理工具的增加,现在测试 BeCJK 源码有两种方式:
  • 不经过 haikuporter:
    *  安装 scons 及 git,hg 工具。
    *  构建软件。
        ~> cd /path/to/becjk/ 
        ~> scons -q
    * 将generated目录相应的生成文件,拷贝到 system/non-packaged 目录下相应的位置。
    * 重启系统即可
  • 使用 haikuporter:
    * 安装 scons 及 git,hg 工具。
    * 配置 haikuporter 及下载最新的 haikuports。
    * 生成 becjk 的 hpkg 格式包。
        ~> cd /path/to/haikuports/
        ~> haikuporter -i becjk-1.0.1
    * 将 haikuports 目录中 packages 目录下的 becjk 的 hpkg 包拷贝到 /system/packages 下。
    * 重启系统,或者稍等一会儿将会在系统图标栏显示输入的图标,在文本编辑器中即可进行输入法输入。

在早期的 BeOS 上还有其他的中文输入法包括 BeChinput 以及现在的 BeCJK 。还有一些有关的介绍可供参考:

BeChinput 是 "Chinput界面思想 + Unicon 核心 + BeOS输入法附件编写尝试",优点为可利用Unicon下的输入法在编译后使用。

BeCJK 是 “BeOS输入法通用模块 + 自编字典式输入法编写范例 + 一些本地化及附加功能等”,目的是可使程序员不必过多关心如何与input_server打交道甚至不必关心界面如何写就可编写输入法程序,统一输入法输 入习惯,韩文输入法 Ami 的移植就是典型的例子。
0 0
原创粉丝点击