- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
图8 文件的原来所在路径和安装到目标板的路径
当然在目标板上运行Konqueror/E之前,必须指定几个环境变量,否则Konqueror/E会找不到库文件而终止运行。图9设置了这些环境变量,并运行Konqueror/E。
至此,Konqueror/E已经安装完毕。但是Konqueror/E缺省情况下是不支持中文网页的,而且界面是英文的。某些情况下为了满足特定的需要,这两者是非常必要的。因此在下一小节里边介绍了Konqueror/E的汉化和支持中文。
3.5 Konqueror/E的中文化
Konqueror/E的中文化可分为两个部分: 一个是Konqueror/E本身控制界面的汉化;另一个是Konqueror/E对中文网站的访问支持。和其他基于Qt 的应用程序一样, Konqueror/E中对所有用户可见的文本使用tr()将文本标识出来。这样利用Qt 提供的翻译工具将很容易把这些文本转化成所需要的语言,同时Qt 提供了两个宏T_ TR_NOOP ( ) 和QT_ TRANSLATE_ NOOP ( ) 。
用它们标示出文本,以便于被lupdate 工具提取。具体操作步骤如下:
(1)在需要翻译源码的XXX. pro 中加入一项: TRANSLATIONS = XXX. t s。
(2)运行lupdate XXX. pro ,生成XXX. t s 文件。该工具识别出t r () 结构和上面描述的QT_ * _NOOP 宏,产生. t s 文件(通常每种语言一个) 。
(3)运行lrelease XXX. pro 将生成XXX. qm。这是一个没有翻译成其他语言的. qm 文件(也可以用Qt Linguist生成) ,可以把它改名为XXX_en. qm。
(4)启动Qt Linguist 将XXX. t s 文件导入,将需要翻译的内容翻译成中文。翻译完成之后, 点击File →Re2lease ,将文件保存为XXX_zh. qm。
(5)翻译文件保存之后, 在程序源码中需要构建Qt ranslator 实例,利用Qt ranslator 将翻译文件加载到图形界面上。
图10 Konqueror/E的中文化
在Konqueror/ embedded 中可以通过修改main. c 中的这段代码来实现UI 的汉化:
由于QT/E是可以支持Unicode编码的,因此Konqueror/E也可以支持中文。但是在编译QT/E的缺省配置中是不支持Unicode的,因此我们要手动修改qconfig-qpe.h文件的配置:
注释掉38行,#define QT_NO_CODECS。
这样修改完毕以后,重新开始编译QT/E以及Qtopia和Konuqueror/E,Konqueror/E就能接受Unicode编码的汉字了。但是要在Konqueror页面上显示,就必须要有相应的字体,因此对Konqueror/E源代码中/konq-embed/dropin / kglobalsettings.cpp文件进行修改:
将"helvetica"改为"unifont"后重新编译Konqueror/E,这样Konqueror/E中就能显示中文字体的页面了。
4 小结
本文对嵌入式浏览器Konqueror/embedded技术核心做了简要分析,阐明了该浏览器的先进性与可扩展性,而且该浏览器是开源的符合GNU条款的自由软件。因此对Embedded-Linux下嵌入式浏览器的使用者来说,Konqueror/embedded无疑是一个最佳选择。但是在 Konqueror/embedded移植到实际使用系统中,存在一系列的问题。如果说没有移植经验的人就会觉得完全无从下手,本文除了移植 Konqueror/E以外还完成了Qtopia的移植。因为本文最终达到了在图形界面Qtopia上运行Konqueror/E。
笔者结合了实际的移植经验,详细地说明了整个移植步骤。将理论与实际结合起来,而不是纸上谈兵。因此本文对嵌入式浏览器的移植有着非常重要的实际意义,同时也希望能给浏览器开发者和使用者们带来参考价值。 |
|