psuxaog 发表于 2008-11-22 15:09:00

[原创]QTE安装汉化添加新程序全过程【恢复】

      QTE安装汉化添加新程序全过程

我是一名QT初学者,在学习过程中遇到过很多问题走过很多的弯路,为了更多像我一样的初学者少走弯路我将把我QT安装…..的全过程表达出来希望对大家有一定的帮助。

我的系统是Red Hat 9.0

要使用的软件包如下:

qt-x11-free-3.3.4.tar.gz

qt-x11-2.3.2.tar.gz

qt-embedded-2.3.10-free.tar.gz

qtopia-free-source-2.1.1.tar.gz

tmake-1.13.tar.gz

e2fsprogs-1.38.tar.gz

jpegsrc.v6b.tar.gz

将以上的软件包放在/opt/qtopia目录下

然后

#cd /opt/qtopia/

tar zxvf qt-x11-fr*;tar zxvf qt-x11-2*;tar zxvf qt-em*;tar zxvf qtop*;tar zxvf tmake*;tar zxvf e2*;tar zxvf jpeg*

解压这些软件包

然后在/opt/qtopia目录下新建一个shell文件夹

#make /opt/qtopia/shell

用vi建立初始化环境变量用的sh文件

vi /opt/qtopia/shell/initial.sh

在按i键然后输入以下内容:

export QTEDIR=/opt/qtopia/qt-2.3.10

export QT2DIR=/opt/qtopia/qt-2.3.2

export TMAKEDIR=/opt/qtopia/tmake-1.13

export QPEDIR=/opt/qtopia/qtopia-free-2.1.1

export QT3DIR=/opt/qtopia/qt-x11-free-3.3.4

export DQTDIR=$QT3DIR

export QTDIR=$QT3DIR

export QTDIR=$QTEDIR

export PATH=$QT2DIR/bin:$QTEDIR/bin:$QPEDIR/bin:$DQTDIR/bin:$QT3DIR/bin:$QTDIR/bin:$TMAKEDIR/bin:$PATH

export LD_LIBRARY_PATH=$QT2DIR/lib:$QTEDIR/lib:$QPEDIR/lib:$DQTDIR/lib:$QT3DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH

输入完之后按shift+:键输入wq保存退出在输入

#source /opt/qtopiashell/initial.sh

注册环境变量

安装 qt-x11-3.3.4:

#cd $QT3DIR

#export TMAKEPATH=$TMAKEDIR/lib/linux-g++

#export QTDIR=$QT3DIR

#export PATH=$QTDIR/bin:$PATH

#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

#./configure

输入yes

#make

经过漫长的编译过程下面我们安装qt-x11-2.3.2

#cd $QT2DIR

#export TMAKEPATH=$TMAKEDIR/lib/linux-g++

#export QTDIR=$QT2DIR

#export PATH=$QTDIR/bin:$PATH

#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

#./configure –no-xft

输入yes

#make

#mkdir $QTEDIR/bin

#cp bin/uic $QTEDIR/bin/

在安装qvfb

#export TMAKEPATH=$TMAKEDIR/lib/linux-g++

#export QTDIR=$QT2DIR

#export PATH=$QTDIR/bin:$PATH:$TMAKEDIR/bin

#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

#cd $QTEDIR/tools/qvfb/

#tmake –o Makefile qvfb.pro

#make

#mv qvfb $QTEDIR/bin/

安装libqte

#cd $QTEDIR

#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++

#export QTDIR=$QTEDIR

#export PATH=$QTDIR/bin:$PATH

#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

#cp –f $QPEDIR/src/qt/qconfig-qpe.h src/tools/

#./configure –system-jpeg –gif –no-xft –qconfig qpe –qvfb –depths 4,8,16,32

输入yes

#make sub-src

之后在安装e2fsprogs-1.38

#cd ../e2fs*/

#./configure –enable-elf-shlibs

#make

#make install lib/uuid/

#cp lib/uuid $QPEDIR/include/ -r

#cp lib/libuuid.a $QPEDIR/lib/

#cp lib/libuuid.so $QPEDIR/lib/

安装jpegsrc

#mkdir /usr/local/man

#mkdir /usr/local/man/man1

#cd ../jpeg*/

#./configure –enable-shared –enable-static

#make

#make install –lib

如果安装成功在/usr/local/lib/会生成libjpeg.*文件

#cp jpeglib.h $QPEDIR/include/

#cp /usr/local/lib/libjpeg.a $QPEDIR/lib/

#cp /usr/local/lib/libjpeg.so* $QPEDIR/lib/

安装qtopia

#cd $QPEDIR

#export QTDIR=$QPEDIR

#export PATH=$QPEDIR/bin:$PATH

#export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH

#./configure

#make

#make install

#cd image/opt/Qtopia/

#mkdir demohome

好经过上面的操作,QT环境就已经建立完了这时我们可以运行一下看看,但是QT自由版里没有提供启动脚本我们写一个

#vi /opt/qtopia/shell/start.sh

输入以下代码

#!/bin/sh

source /opt/qtopia/shell/initial.sh



export QTDIR=/opt/qtopia/qtopia-free-2.1.1/image/opt/Qtopia

export QPEDIR=/opt/qtopia/qtopia-free-2.1.1/image/opt/Qtopia

export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH

export PATH=$QPEDIR/bin:$PATH



findproc(){

        /bin/ps -e | /bin/sed -n -e '/\<'$1'\>/s/^*\(*\).*/\1/p'

}



killproc(){

        pid=~findproc $1~

        ["$pid" != ""]&&kill $pid

}



killall quicklauncher

killall qpe

killall qvfb

[-x /sbin/fuser]&&(/sbin/fuser -kn tcp 4242 || /sbin/fuser -kn tcp 4243)

[-x /bin/fuser]&&(/bin/fuser -kn tcp 4242 || /bin/fuser -kn tcp 4243)



echo "Stopping common sound deamons..."

artsd_pid=~findproc artsd~

["$artsd_pid" != ""]&&kill $artsd_pid

esd_pid=~findproc esd~

["$esd_pid" != ""]&&kill $esd_pid



echo "Starting qvfb..."

qvfb -width 240 -height 320 & 

sleep 5s



echo "Starting Qtopia 2.1.1 ..."

HOME=/opt/qtopia/qtopia-free-2.1.1/image/opt/Qtopia/demohome qpe



echo "Restarting killed sound deamons..."

["$artsd_pid" != ""]&&artsd &

["$esd_pid" != ""]&& esd &



写完后我们可以输入以下命令

#source /opt/qtopia/shell/start.sh

如果没有什么错误的话会看到以下界面

图片1

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_508195.jpg

图片1 (原文件名:1.jpg) 

好有了这个我们就可以开发QT程序了

下面我们把这个界面变成中文的

我们要先运行几个命令:

#source /opt/qtopia/shell/initial.sh

#cd QPEDIR

#./configure –languages “zh_CN”

#make lupdate

#cd bin

#./nct_lupdate

经过上述命令之后在$QPEDIR/i18n/会生成一个zh_CN文件夹这时用linguist工具翻译这个文件夹下所有的ts文件

#cd $QPEDIR/i18n/zh_CN

#linguist

Linguist是一个图形界面点击File打开一个ts文件在Translation里输入Source text里面的单词的翻译如下图之后按Ctrl+Enter翻译下一个词

图片2

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_508196.jpg

图片2 (原文件名:2.jpg) 

翻译之后把输入以下命令

#make lupdate

#make install

之后把$QPEDIR/i18l/zh_CN/下的QtopiaDefaults.ts修改成如下形式

<!DOCTYPE TS><TS>

<context>

    <name>FontMap</name>

    <message>

        <source>Normal,songti,12</source>

        <translation type="unfinished"></translation>

    </message>

    <message>

        <source>Large,songti,14</source>

        <translation type="unfinished"></translation>

    </message>

    <message>

        <source>Small,songti,10</source>

        <translation type="unfinished"></translation>

    </message>

</context>

</TS>

然后输入以下命令生成它的qm文件

#lrelease QtopiaDefaults.ts

把qm文件复制到$QPEDIR/image/opt/Qtopia/i18l/zh_CN/

#mv QtopiaDefaults.ts $QPEDIR/image/opt/Qtopia/i18l/zh_CN/ -f

这样做的目地是让qtopia默认字体为宋体,因为要是先改QtopiaDefaults.ts,在make install之后有可能会自动把它改成我们没有改之前的样子为了确保安全才这样做,如果不改这个文件也可以只是在启动qtopia之后中文字会乱码要在Setting里面设置一下字体才行。

经过上面的操作之后我们还要把qtopia的默认语言设置为英文

修改$QPEDIR/image/opt/Qtopia/demohome/Settings/locale.conf 把它改成如下样子



Cursor = 0

InputLanguages =zh_CN

Language = zh_CN

Screen = :0



Timezone = America/New_York

这时我们要是启动qtopia中文会乱码因为我们还没有把songti设置好

从windows xp 系统里的c:\windows\fonts里面复制一个simsun.ttc文件(这个文件是宋体字字库)把它放在$QPEDIR/image/opt/Qtopia/lib/fonts/

之后要改一下$QPEDIR/image/opt/Qtopia/lib/fonts/fontdir在里面加一行

songti simsun.ttc FT n 50 0 su 100,120,140,160,180,200,240

这里面的songti是字体名simsun.ttc是字体文件FT是指ttf字体su后面的数字是字号

经过上面的修改之后我们可以运行qtopia会看到一个中文的界面

图片3

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_508197.jpg

图片3 (原文件名:3.jpg) 

这样界面的汉化工作就完成了不过这里面自带的程序还是英文的,这些程序的源代码是放在$QPEDIR/src/applications/;$QPEDIR/src/settings/;$QPEDIR/src/games/里面的我们可以把这些目录来进行汉化举个例子,我们要汉化设置里面的语言那我们可以这样:

#cd $QPEDIR/src/settings/language/

#linguist language-zh_CN.ts

汉化之后

#lrelease language-zh_CN.ts

#mv language-zh_CN.qm  ../../../image/opt/Qtopia/i18l/zh_CN/ language.qm -f

这样运行qtopia就可以看到效果了

图片4

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_508198.jpg

图片4 (原文件名:4.jpg) 

好关于汉化工作我们就全部完成了下成我们来编一个程序把它放在QT的桌面上

先在$QPEDIR/src/applications/新建一个文件夹

#mkdir $QPEDIR/src/applications/demo

#cd $QPEDIR/src/applications/demo/



我们先用designer设计器设计一个窗体

#designer

点击File->New选择Widget设置成如下形式

图片5

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_508199.jpg

图片5 (原文件名:5.jpg) 

然后保存成demo.ui输入以下命令生成代码

#uic –o demo.h demo.ui

#uic –o demo.cpp –impl demo.h demo.ui

然后编辑main.cpp文件为如下形式:

#include "demo.h"

#include <qapplication.h>



#define QT_NO_WIZARD



int main(int argc,char **argv)

{

        QApplication app(argc,argv);

        demo dlg;

        QObject::connect(&dlg,SIGNAL(clicked()),&app,SLOT(quit()));

        app.setMainWidget(&dlg);

        dlg.show();

        return app.exec();

}



然后编辑demo.pro文件为如下形式

CONFIG                += qtopiaapp

HEADERS                = demo.h

SOURCES                = demo.cpp \

                    main.cpp

TARGET                = demo



TRANSLATABLES   =   $$SOURCES \

                    $$HEADERS

接下来输入以下命令生成Makefile文件

#tmake –o Makefile demo.pro

在编译

#make

如果tmake 不成功可能是$TMAKEPATH变量没有设置可以用下面的命令设置一下

#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++

如果编译不成功,可能是环境变量的问题,因为在initial.sh里面$QPEDIR是/opt/qtopia/qtopia-free-2.1.1而在start.sh里面$QPEDIR/opt/qtopia/qtopia-free-2.1.1/image/opt/Qtopia在这里我说的$QPEDIR是/opt/qtopia/qtopia-free-2.1.1下的

如果编译成功将生成demo这个可执行文件把它放在$QPEDIR/image/opt/Qtopia/bin/

#cp demo $QPEDIR/image/opt/Qtopia/bin/

然后我们在建立一个demo.desktop文件

#vi $QPEDIR/image/opt/Qtopia/apps/Applications/demo.desktop

输入以下内容:

 

File=QtopiaApplications 

Context=demo

 

Comment[]=A demo Program 

Exec=demo

Icon=demo 

Type=Application 

Name[]=demo

之后制作一个30x30的demo.png图标文件把它放在$QPEDIR/image/opt/Qtopia/pics/

经过上面的部骤启动qtopia就能看到成果了

图片6

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_508200.jpg

图片6 (原文件名:6.jpg) 

注意:如果有些文件更改后不能保存可能这个文件是只读的可以用 chmod +w 文件 设置为可写

到这里这个教程就已经结束了如果哪里有不妥之处还请多指点谢谢了!

本教程的PDF文档ourdev_508235.pdf(文件大小:270K) (原文件名:QTE安装汉化添加新程序全过程-宋洪业.pdf) 

yulutong 发表于 2009-1-19 14:40:27

...

安装qtopia 

#cd $QPEDIR 

#export QTDIR=$QPEDIR 

#export PATH=$QPEDIR/bin:$PATH 

#export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH 

#./configure 



一步一步的按照来,到这里有点问题

提示:

Your QTDIR environment variable does not seem to point to a

valid Qt/Embedded, aborting configure.

yulutong 发表于 2009-1-13 15:56:21

PDF打不开啊

希望楼主再接再励 出个hello world教程

superyongzhe 发表于 2009-1-10 21:59:55

谢谢,有时间再弄。我以前也安装过,只有x11的安装成功了。

teencole 发表于 2008-11-29 13:16:10

谢谢.可能以后有用

liyong2000 发表于 2008-11-29 12:55:26

谢谢。安装下来有多大?

yulutong 发表于 2009-2-5 15:16:24

把#export QTDIR=$QPEDIR  换成#export QTDIR=$QTEDIR  就好了.楼主不顶,太对不起你.谢谢你的分享,QT的安装困扰了1个多月了.

swordKING 发表于 2009-6-11 11:42:39

感谢楼主,下载了看!

qiu1123 发表于 2009-6-15 11:28:36

不错,   汉化真是个体力活...

liu_xf 发表于 2011-4-25 22:42:02

顶,不错,qtopia桌面还是很不错的

像个小电脑,可以直接在上面添加应用程序

但要是完美支持qt4.7就好了


qt2.2原实有点老了

shuixingoo 发表于 2011-5-14 22:08:49

最近就要做这东西了!留个脚印以表支持!

z421868436 发表于 2011-5-17 16:09:51

等我先玩玩其他的
页: [1]
查看完整版本: [原创]QTE安装汉化添加新程序全过程【恢复】