[转载]从极点到fcitx码表的转换方法[原作者:第六元素]

系统字体配置、中文显示和输入法问题
回复
头像
逍遥昱昕
帖子: 103
注册时间: 2007-01-12 21:33
联系:

[转载]从极点到fcitx码表的转换方法[原作者:第六元素]

#1

帖子 逍遥昱昕 » 2009-01-30 20:18

本帖转自linuxsir论坛输入法研究专区
原作者:第六元素
url:http://www.linuxsir.org/bbs/thread324435.html



一、格式分析
极点5的码表结构:如(蓝色为码表的内容,红色部分为我的注释,码表仅给出关键结构)
头部信息
输入法名称=二笔输入法#
Name=二笔标版
……
……
---------------------------------
[rule]
三字词=p11+p12+p21+p31

编码开始,这个是码表的主要内容
[Text]
, ,
. 。
/ 、
; ;

下面开始的内容是关键
a 安
a,ri 嫒
……
zykg 斋 主客观 左右开弓 颤
<=请注意这一行
……
zzzy 种族主义
zzzz 自作主张

结束,极点6导出文件中没有下面部分的
[拼音区]
a 啊 阿 呵 吖 嗄 腌 锕 錒


极点6的码表需要导出,用其导出功能即可,得到的码表结构与极点5的差不多,就不再分析了

fcitx 码表源文件结构
键码=abcdefghijklmnopqrstuvwxyz;',./
……
……
[数据]

下面开始的内容是关键
a 安
a,ri 嫒
……
zykg 斋
<=请注意这四行与极点码表的差别
zykg 主客观
zykg 左右开弓
zykg 颤
……
zzzy 种族主义
zzzz 自作主张

结束

大家发现了吧,其实fcitx码表源文件的结构和极点的码表结构差不多,除了一些附件信息外,唯一的差别就在于对重码字词的安排上,极点的是放在一个条目下的,而fcitx是分开放的。
所以转换的关键就在于把
“zykg 斋 主客观 左右开弓 颤 ”之类变成
“zykg 斋
zykg 主客观
zykg 左右开弓
zykg 颤”

二、制作
1、在windows下修改好极点码表[/b]
如果是极点5,去掉除a~z编码部分的所有头尾信息,如果是极点6,把导出后的码表同样处理,再把unicode格式转换为ansi格式(用记事本或ue之类另存为ansi格式即可)。
2、转换码表
到装有fcitx的linux下,运行

代码: 全选

jd2fcitx 改好的极点码表>>待修改的fcitx码表源文件
完整安装了fcitx应该就有jd2fcitx这个命令,如果没有,可以自己从源码中解开单独编译一下。但在Windows下编译运行,不能正常转换码表。或者下载我编译好的(见附件,win下对代码作了点小修改),解开后得到jd2fcitx和jd2fcitx.exe,分别可在linux 和windows下运行
编辑刚才获得的文件,加入相关头部信息即可。
最后运行

代码: 全选

txt2mb 修改好后的fcitx码表源文件 码表名.mb
就得到了相应的码表

附:二笔的fcitx码表头部信息
键码=abcdefghijklmnopqrstuvwxyz;',./
码长=4
规避字符=;iuv
[组词规则]
e2=p11+p12+p21+p22
e3=p11+p12+p21+p31
a4=p11+p21+p31+n11
[数据]
a 安
……

3、题外话:
没想到fcitx的码表制作是如此方便吧?
当时我制作码表的时候没发现有jd2fcitx这个工具,还自己写了个程序……
其实Yuking在fcitx包里还提供如win2fcitx等一系列码表制作工具,像Yuking这样充分为用户考虑的人真不愧为大侠!
jd2fcitx.tar.gz
(41.79 KiB) 已下载 142 次
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
联系:

Re: [转载]从极点到fcitx码表的转换方法[原作者:第六元素]

#2

帖子 lerosua » 2009-01-30 21:47

还挺复杂的,学习下
头像
逍遥昱昕
帖子: 103
注册时间: 2007-01-12 21:33
联系:

Re: [转载]从极点到fcitx码表的转换方法[原作者:第六元素]

#3

帖子 逍遥昱昕 » 2009-02-01 13:56

lerosua 写了:还挺复杂的,学习下
其实并不复杂……我之前也误以为复杂,这次一看,完全不是那么回事……
回复