Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2207261
  • 博文数量: 866
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10638
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/landuochong

文章分类

全部博文(866)

文章存档

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(70)

2011年(103)

2010年(360)

2009年(283)

2008年(22)

分类:

2011-02-21 10:28:26

转载:http://hi.baidu.com/428501/blog/item/73dbf9734253f1158701b0ac.html

===========================================================================================
11. 实现GUI界面的中文化,
===========================================================================================
----------------------------------------------------------
(1)实现GUI界面的中文化,
----------------------------------------------------------
进入/data/qt_x86

(i)设置环境变量
#. setenv_PC_ZC.sh
#export QTDIR=$QTEDIR

================================================================================
(ii)进入qtopia-2.1.1-target;开始配置
================================================================================
#./configure -displaysize 320x240 -languages "zh_CN"

----------------------------------------------------------
(2)移植相应的拼音输入法,使得系统可以输入汉字
----------------------------------------------------------

///////////////////////////////////////////
//
//   移植Qtopia中文输入法_PC机版
//////////////////////////////////////////
http://sourceforge.net/projects/murphypinyin/ 下载MurphyPinyin-0.03-src.tgz

1. #tar zxvf MurphyPinYin-0.03-src.tgz
2. #cd MurphyPinYin
3. mv Makefile.x86 Makefile
4. #export QTDIR=/data/qt_x86/qt-2.3.10-target
   #export QPEDIR=/data/qt_x86/qtopia-2.1.1-target

5. 修改Makefile文件的以下内容:
LIBS= $(LIBS) –L$(QPEDIR)/lib –L$(QTDIR)/lib –lm –lqpe –lqte
即:添加–L$(QPEDIR)/lib

6. 修改PinyinFrame.cpp
....
#include "public.h"
#include "Config.h"

const char table_file[]=
#ifdef X86
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/scim/pinyin_table.txt"; //wpb gaidong
#else
"/home/zaurus/.murphytalk/pinyin_table.txt";
#endif

const char phrase_index_file[]=
#ifdef X86
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/phrase/murphytalk_phrase_idx.txt"; //wpb gaidong
#else
"/home/zaurus/.murphytalk/murphytalk_phrase_idx.txt";
#endif

const char config_file[]=
#ifdef X86
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/murphytalk.conf"; //wpb gaidong
#else
"/etc/murphytalk.conf";
#endif
....

【注】:对于onst char phrase_index_file[]=部分
如果phrase中没有murphytalk_phrase_idx.txt;则写为:
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/phrase/WINPY.TXT"; //wpb gaidong
但是字体不是很好

7. 修改murphytalk.conf
font=efont
;font-size=16

修改为自己的中文字体,如unifont
font=unifont
;font-size=16

8. 创建目录:/opt/Qtopia/plugin/inputmethods

9. #make all
这样就会在/opt/Qtopia/plugin/inputmethods下生成四个库文件:
libmurphypinyin.so
libmurphypinyin.so.0
libmurphypinyin.so.0.0
libmurphypinyin.so.0.0.3
将该四个库文件拷贝到/data/qt_x86/qtopia-2.1.1-target/image/opt/Qtopia/plugin/inputmethods目录下:
#cp /opt/Qtopia/plugin/inputmethods/libmurphypinyin.so*
    /data/qt_x86/qtopia-2.1.1-target/image/opt/Qtopia/plugin/inputmethods

10. 在qtopia的安装路径下的image/opt/Qtopia/plugin/inputmethods/编辑一个叫murphypinyin.desktop的文件:
[Desktop Entry]
Name = MurphyPinYin
Comment = Chinese Input Method
Name[zh_CN] = Murphy拼音
Comment[zh_CN] = 中文输入法
X-QPE-Library = libmurphypinyin.so
11. 启动Qtopia。这时在输入法的选择里面的确增加了Murphytalk的输入法,可以通过键盘输入中文。


【注】:如果当我按入字母的时候却没能显示出我可以选择的字库,没有任何选择的显示。比如我键入“c”,终端显示
key code is 0x43
c,0 matched
出现这种情况;主要是因为PinyinFrame.cpp文件没有修改好,其中的路径没有设置正确

////////////////////////////////////////////////////
//
//   移植Qtopia中文输入法_ARM版
////////////////////////////////////////////////////
http://www.qtcn.org/bbs/read.php?tid=9292 下载 murphytalk-0.3_softkey.zip

1. murphytalk-0.3_softkey.zip 解压缩
2. #cd murphytalk-0.3
3. #export QTDIR=/usr/local/arm/qt_arm/qt_wpb/qte
   #export QPEDIR=/usr/local/arm/qt_arm/qt_wpb/qtopia

5. 修改Makefile文件的以下内容:
LIBS= $(LIBS) –L$(QPEDIR)/lib –L$(QTDIR)/lib –lm –lqpe –lqte
即:添加–L$(QPEDIR)/lib
【注】:用Makefile 不要用Makefilex86,Makefile中用的是arm-linux-gcc编译器


6. 在开发板的文件系统/tmp下新建目录CHInput;
将scim/pinyin_table.txt;phrase/murphytalk_phrase_idx.txt;phrase/murphytalk_phrase.dat
murphytalk.conf拷贝到CHInput文件夹下面。

修改PinyinFrame.cpp
....
#include "public.h"
#include "Config.h"

const char table_file[]=
#ifdef X86
"/home/chyang/pinyin_table.txt";
#else
"/tmp/CHInput/pinyin_table.txt";//wpb gaidong
#endif

const char phrase_index_file[]=
#ifdef X86
"/home/chyang/murphytalk_phrase_idx.txt";
#else
"/tmp/CHInput/murphytalk_phrase_idx.txt"; //wpb gaidong
#endif

const char config_file[]=
#ifdef X86
"/home/chyang/murphytalk.conf";
#else
"/tmp/CHInput/murphytalk.conf"; //wpb gaidong
#endif
....


然后,为了防止在输入中文时候会有按键自动重复情况,注释掉:repeatTimer->start(500);

【注】:对于 char phrase_index_file[]=部分
如果phrase中没有murphytalk_phrase_idx.txt;则就使用WINPY.TXT"
但是字体不是很好

7. 修改murphytalk.conf
font=efont
;font-size=16

修改为自己的中文字体,如wenquanyi
font=wenquanyi
;font-size=16

也可采用unifont
font=unifont
;font-size=16

8.选择字库
从Qt4的lib/fonts中拷贝wenquanyi_120_50.qpf字体到 /usr/local/arm/qt_arm/board/lib/fonts
从qt_wpb/qte/lib/fonts中拷贝字体索引文件: fontdir 拷贝到 board/lib/fonts
修改fontdir,如下:
font wenquanyi_120_50.bdf BDF n 50 120 u

9. #make all
这样就会在/usr/local/arm/qt_arm/qt_wpb/murphytalk-0.3_softkey/murphytalk-0.3下生成四个库文件:
libmurphypinyin.so
libmurphypinyin.so.0
libmurphypinyin.so.0.0
libmurphypinyin.so.0.0.3
将该四个库文件拷贝到/usr/local/arm/qt_arm/board/plugin/inputmethods目录下:
#cp /usr/local/arm/qt_arm/qt_wpb/murphytalk-0.3_softkey/murphytalk-0.3/libmurphypinyin*
    /usr/local/arm/qt_arm/board/plugin/inputmethods

10. 在qtopia的安装路径下的/usr/local/arm/qt_arm/board/plugin/inputmethods/编辑一个叫murphypinyin.desktop

的文件:
[Desktop Entry]
Name = MurphyPinYin
Comment = Chinese Input Method
Name[zh_CN] = Murphy拼音
Comment[zh_CN] = 中文输入法
X-QPE-Library = libmurphypinyin.so
11. 启动Qtopia。这时在输入法的选择里面的确增加了Murphytalk的输入法,可以通过键盘输入中文。

=====================================================================================
【关于输入法有些注意事项】:
=====================================================================================

1。3个文件(pinyin_table.txt,murphytalk_phrase_idx.txt,murphytalk.conf)位置一定按PinyinFrame.cpp里位置

放好,1个文件(murphytalk_phrase.dat)位置一定按PinyinPhrase.cpp里位置放好, 你也可以改位置。

2。murphytalk.conf 设置中文字体是efont,由于没有efont,设置为unifont也可以,字体大小size,keyboard=0不显

示键盘,=1显示,

3。如果中文无法输入,英文可以的话,就在PinyinFrame.cpp的SendKey(int u, int c)里加一句

emit key(u,c,0,true,false);

4。如果在输入中文时候会有按键自动重复情况,注释repeatTimer->start(500);
上面的语句emit key(u,c,0,true,false); 就不要加了;加了仍然会重复的

5. 当默认字体不是efont时候选字被系统工具栏遮挡的问题:可以选择字体小些的字库,比如:wenquanyi_120_50.qpf
   注:efont是台湾人做的字体,所以它只能显示big5和gb2312的字体,远远达不到gbk的字数


【操作】:
(1)点击小键盘的上侧,即可打开软键盘
(2)点击shift,可以进行“造词”
词组支持。可以输入声母进行模糊匹配:如p y可以匹配所有第一字声母为p和第二字声母为y的词组。

在线造词:shift键进入在线造词状态,此时所有输入的字或词会被依次加入正在造的词组,以蓝色显示。再次按shift

键提交所造新词。【不过好像不行】

阅读(1488) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册