当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [转载]从极点到fcitx码表的转换方法[原作者:第六元素]
帖子发表于 : 2009-01-30 20:18 
头像

注册: 2007-01-12 21:33
帖子: 103
送出感谢: 0 次
接收感谢: 0 次
本帖转自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]
被下载 86 次


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [转载]从极点到fcitx码表的转换方法[原作者:第六元素]
帖子发表于 : 2009-01-30 21:47 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
还挺复杂的,学习下


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [转载]从极点到fcitx码表的转换方法[原作者:第六元素]
帖子发表于 : 2009-02-01 13:56 
头像

注册: 2007-01-12 21:33
帖子: 103
送出感谢: 0 次
接收感谢: 0 次
lerosua 写道:
还挺复杂的,学习下


其实并不复杂……我之前也误以为复杂,这次一看,完全不是那么回事……


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译