1、 概述
Qt 提供了比较好的语言翻译功能,在一个国际化软件内有大量显示文本需要翻译成本
地语言,例如:窗口标题、菜单项、弹出帮助文本、按钮标示等等。
为此,在开发过程中我们必须遵循下列步骤:
1) 把程序代码中需要用多语言显示的文本用下列形式引用
QString strHello = tr ("Hello world!");
2) 在 Qt 工程文件中加入下列条目
TRANSLATIONS = tr/hellotr_la.ts
3) 、 使用 lupdate 工具生成 tr/hellotr_la.ts 文件,此文件中收集了本工程代码中全部采用 tr()
引用的文本
4) 、 使用 linguist 编辑 tr/hellotr_la.ts 文件,并翻译相应文本为所需要的语言
5) 、 使用 lrelease 生成 tr/hellotr_la.qm 语言文件
6) 、 在程序入口出,使用 QTranslator 加载生成的 tr/hellotr_la.qm 翻译文件
随后编译该工程,生成可执行程序,运行,就可以看到界面显示文本已经翻译成相应
的语言。
2、一个例子
下面我们使用一个简单的例子程序演示显示文本的引用方法。
/*---------main.cpp -------------------*/
#include <QApplication>
#include <QPushButton>
#include <QTranslator>
int main (int argc, char *argv [])
{
QApplication app (argc, argv);
QTranslator translator;
translator.load ("tr/hellotr_la");
app.installTranslator (&translator);
QPushButton hello (QPushButton::tr ("Hello world!"));
hello.resize (100, 30);
hello.show ();
return app.exec ();
}
1)、在 Qt 的工程文件中加入下列条目
每个 Qt 工程都有一个 .pro 文件,类似于 VC 的工程文件。在这个文件里添加下列条目(红
色部分),来标志这个工程里有那些翻译文件。
######################################################################
# trdemo.pro #
# Automatically generated by qmake (2.01a) 9 14:03:16 2007
######################################################################
TEMPLATE = app
TARGET = trdemo
DEPENDPATH += .
INCLUDEPATH += .
# Input
SOURCES += main.cpp
TRANSLATIONS = tr/hellotr_la.ts
2)、使用 lupdate 工具生成 tr/hellotr_la.ts 文件
Lupdate 是一个简单的命令行工具,它读取 trdemo.pro 文件,在工程中源代码文件、头
文件、 UI 文件中的搜集所有需要翻译的字符串。然后生成或者更新在 trdemo.pro 中列出的.ts
文件。按下图所示的命令生成 tr/hellotr_la.ts 文件
图 1
3)、使用 linguist 编辑 tr/hellotr_la.ts 文件
运行 linguist 工具,打开 tr/hellotr_la.ts。如下图显示,选择需要翻译的字串,按所需要
的语言进行翻译,然后保存。
图 2
4)、使用 lrelease 生成 tr/hellotr_la.qm 语言文件
Lrelease 是另外一个简单的命令行工具,它读取.pro 文件并生成程序使用的.qm 文件。
每个在.pro 列出的.ts 文件都对应一个.qm 文件。具体操作见图 1 中 lrelease 命令。
5)、使用 QTranslator 加载生成的 tr/hellotr_la.qm 翻译文件
在程序入口(一般指 main()内),对应每个.qm 文件,声明体格 QTranslator 对象,分别
加载该.qm 文件。见主程序(粉红色部分)。
如果需要生成多个语言版本,可重复上述步骤,分别生成相应的.ts 和.qm 文件。然后针
对每种语言的安装环境,分别加载相应的.qm 文件。
6)、运行程序
完成上述步骤,就可以运行程序了。我们分别看看, tr/目录下有 hellotr_la.qm 文件和
没有 hellotr_la.qm 文件的运行结果(图 3、图 4):
图 3 没有翻译文件
图 4 有翻译文件
附录 QT 的安装
在红旗 Linux 桌面版 4.1 中安装 Qt 4.0.1
要安装 QT,首先要有 QT 的安装包。要想免费的使用 QT,就要下载其开源版。QT 开
源版是遵守 GPL 和 QPL 的。如果想要使用 QT 库来写商业软件,需要使用 QT 的商业版。
这里讲解的是 QT 开源版。
QT 开源版可以从这里获得:http://www.trolltech.com/download/opensource.html。
1、为避免麻烦,请用 root 用户登录。
2、下载完将近 20M 的 QT 源码包后将其解压。解压用在图形界面就能很好的进行。右
键点击下载的文件(qt-x11-opensource-src-4.0.1.tar.gz),选择“解压”,在弹出的窗口中点击“确
定”按钮。或者在终端下键入“tar –zxvf t-x11-opensource-src-4.0.1.tar.gz”并回车。
这 样 会 在 该 文 件 的 同 一 目 录 生 成 qt-x11-opensource-src-4.0.1 目 录 。 将
qt-x11-opensource-src-4.0.1 改名为 qt-4.0.1
3、将 qt-4.0.1 目录复制到/tmp 目录下。
4、进入 qt-4.0.1 目录,点击菜单“工具-->打开终端”。这样可以打开一个终端,并且当
前目录为/tmp/qt-4.0.1
5、在终端中键入如下命令“./configure”,经过两分钟左右,完成对 QT 库的设置,生成
makefile。之后程序会提示使用“gmake install”安装。
6、按照提示,在终端键入“gmake install”。键入“yes”并回车同意使用 GPL、QPL 协议
(QT 默认安装到/usr/local/Trolltech/Qt-4.0.1,如果想更改安装目录,使用-prefix 参数,具体
如何使用,请参照其他相关文档)。
7 、 若 只 想 root 用 户 使 用 QT , 则 打 开 “/root/.bash_profile” 文 件 , 在 其 中 加 入
“PATH=/usr/local/Trolltech/Qt-4.0.1/bin:$PATH”和“export PATH”两行。重新登录 root 用户,
设置生效,现在你可以使用 QT 了。在终端中键入“qtdemo”可以打开 QT 的演示程序,运行
“designer”可以打开 QT Designer,开始你的 QT 界面设计之旅了。
如果想以后新建的用户也可以使用 QT,则在/etc/skel/.bash_profile 文件中加入
“PATH=/usr/local/Trolltech/Qt-4.0.1/bin:$PATH”和“export PATH”两行。所加两行要视你的 QT
安装路径而定。
QT/Windows OpenSource 版本的安装
1、 下载安装文件
首先去官方网站下载 QT OpenSource (以下简称 QT ),现在的最新版本是 4.0.1 ,
下载连接: http://www.trolltech.com/download/qt/windows.html
官方网站申明 QT OpenSource 版本只支持 MinGW 编译器,所以在安装 QT 之前最好
先安装 MinGW 。不事先安装也可以, QT 安装时会让你指定 MinGW 的安装位置,如果未安
装,则 QT 的安装程序会引导你进行 MinGW 的网络安装。不过,我还是建议不要使用这种
方式,因为网络安装 MinGW 的速度实在是慢,而且经常下载一半就失去连接。不支持断点
续传,让你前功尽弃。
下载 MinGW 的安装程序,也花了我很大的功夫。使用官方网站 http://www.mingw.org/
提供的安装文件 MinGW-3.1.0-1.exe 之后,在 QT 安装时总是报告无法找到 MinGW 编译器
的错误,估计是缺失了什么文件,到现在也没搞明白。解决方法就是安装 Dev-cpp ,我安
装的是 devcpp-4.9.9.2_setup.exe ,里面包含了 MinGW 编译器。 Dev-cpp 的官方网站是
http://www.bloodshed.net/ ,可是我从来没成功登陆过。
2、 执行安装文件
先执行 devcpp-4.9.9.2_setup.exe 文件。其中,需要注意的是 [ 组件选择 ] 对话框。
在[组件选择]对话框中,请勾选上[Mingw compiler system]。
再执行 qt-win-opensource-4.0.1-mingw.exe 文件。其中,安装程序会让你指定已安
装的 MinGW 编译器的位置,如果事先没有安装,则可以在此时选择网络安装 MinGW。
另外,安装过程中要记得选择[设置环境变量]
Qt Designer 是一个非常好用的界面编辑工具,它生成窗体文件的后缀名是.ui,最好选择
将.ui 文件和 Qt Designer 程序关联起来。
3、 后续工作
运行:[开始]>[程序]>[Qt by Trolltech v4.0.1 (OpenSource)]>[Qt 4.0.1 (Build Debug
Libraries)],[Qt 4.0.1 (Build Debug Libraries)]安装 QT 的 Debug 库。
QT4 和 VS2005 的整合安装
1.下载源码包。
2.解压到 C:\Qt\4.2-msvc2005\ (如果整合 Visual Studio 2005)
3.下载 acs_4.2.2-patch1.zip 并解压到 C:\Qt\4.2-msvc2005\中。,
4.修改 C:\Program Files\Microsoft Visual Studio 8 Express\Common7\Tools\vsvars.bat 文件。
代码如下:
@set VSINSTALLDIR=c:\Program Files\Microsoft Visual Studio 8
@SET VCINSTALLDIR=c:\Program Files\Microsoft Visual Studio 8\VC
@SET FrameworkDir=c:\WINDOWS\Microsoft.NET\Framework
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0
@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR
@璐村惂鐢ㄦ埛_000076K馃惥 Setting environment for using Microsoft Visual Studio 2005 x86 tools.
@rem
@rem Root of Visual Studio IDE installed files.
@rem
@set DevEnvDir=c: \Program Files\Microsoft Visual Studio 8\Common7\IDE
@set QTDIR=C:\Qt\qtwin-4.2.2
@set QMAKESPEC=win32-msvc2005
@set PATH=%QTDIR%\bin; c:\Program Files\Microsoft Visual Studio 8\Common7\IDE; c:\Program Files\Microsoft
Visual Studio 8\VC\BIN; c:\Program Files\Microsoft Visual Studio 8\Common7\Tools; c:\Program Files\Microsoft Visual
Studio 8\SDK\v2.0\bin;c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;c:\Program Files\Microsoft Visual Studio
8\VC\VCPackages; %PATH%
@set INCLUDE=%QTDIR%\include; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include;
c:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE; %INCLUDE%
@set LIB=%QTDIR%\lib; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib; c:\Program
Files\Microsoft Visual Studio 8\VC\LIB; c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB%
@set LIBPATH=c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
@goto end
:error_no_VSINSTALLDIR
@echo ERROR: VSINSTALLDIR variable is not set.
@goto end
:error_no_VCINSTALLDIR
@echo ERROR: VCINSTALLDIR variable is not set.
@goto end
:end
5. 运行程序 -> Microsoft Visual Studio 2005-->Visual Studio ToolsàVisual Studio 2005
Command Prompt。
6. cd C:\Qt\4.2-msvc2005\
7. installpatch42.bat(运行此文件)
8. qconfigure.bat msvc2005 –debug-and-release -no-stl
9. nmake sub-src
10. nmake
11. 添加环境变量。PATH 中添加 C:\Qt\4.2-msvc2005\bin
12. 设置 QMAKESPEC 变量值为 win32-msvc2005
13. 当编写完一个程序之后,调用 Visual Studio 2005 Command Prompt。
14. qmake -project -t vcapp -o projectname.pro
15. qmake
将产生 projectname.vcproj 文件。
15.用 vs2005 打开之后,需要在 project-〉 property-〉 configuration properties-〉 linker-〉
input 添加 Imm32.lib, Ws2_32.lib, winmm.lib
Qt 提供了比较好的语言翻译功能,在一个国际化软件内有大量显示文本需要翻译成本
地语言,例如:窗口标题、菜单项、弹出帮助文本、按钮标示等等。
为此,在开发过程中我们必须遵循下列步骤:
1) 把程序代码中需要用多语言显示的文本用下列形式引用
QString strHello = tr ("Hello world!");
2) 在 Qt 工程文件中加入下列条目
TRANSLATIONS = tr/hellotr_la.ts
3) 、 使用 lupdate 工具生成 tr/hellotr_la.ts 文件,此文件中收集了本工程代码中全部采用 tr()
引用的文本
4) 、 使用 linguist 编辑 tr/hellotr_la.ts 文件,并翻译相应文本为所需要的语言
5) 、 使用 lrelease 生成 tr/hellotr_la.qm 语言文件
6) 、 在程序入口出,使用 QTranslator 加载生成的 tr/hellotr_la.qm 翻译文件
随后编译该工程,生成可执行程序,运行,就可以看到界面显示文本已经翻译成相应
的语言。
2、一个例子
下面我们使用一个简单的例子程序演示显示文本的引用方法。
/*---------main.cpp -------------------*/
#include <QApplication>
#include <QPushButton>
#include <QTranslator>
int main (int argc, char *argv [])
{
QApplication app (argc, argv);
QTranslator translator;
translator.load ("tr/hellotr_la");
app.installTranslator (&translator);
QPushButton hello (QPushButton::tr ("Hello world!"));
hello.resize (100, 30);
hello.show ();
return app.exec ();
}
1)、在 Qt 的工程文件中加入下列条目
每个 Qt 工程都有一个 .pro 文件,类似于 VC 的工程文件。在这个文件里添加下列条目(红
色部分),来标志这个工程里有那些翻译文件。
######################################################################
# trdemo.pro #
# Automatically generated by qmake (2.01a) 9 14:03:16 2007
######################################################################
TEMPLATE = app
TARGET = trdemo
DEPENDPATH += .
INCLUDEPATH += .
# Input
SOURCES += main.cpp
TRANSLATIONS = tr/hellotr_la.ts
2)、使用 lupdate 工具生成 tr/hellotr_la.ts 文件
Lupdate 是一个简单的命令行工具,它读取 trdemo.pro 文件,在工程中源代码文件、头
文件、 UI 文件中的搜集所有需要翻译的字符串。然后生成或者更新在 trdemo.pro 中列出的.ts
文件。按下图所示的命令生成 tr/hellotr_la.ts 文件
图 1
3)、使用 linguist 编辑 tr/hellotr_la.ts 文件
运行 linguist 工具,打开 tr/hellotr_la.ts。如下图显示,选择需要翻译的字串,按所需要
的语言进行翻译,然后保存。
图 2
4)、使用 lrelease 生成 tr/hellotr_la.qm 语言文件
Lrelease 是另外一个简单的命令行工具,它读取.pro 文件并生成程序使用的.qm 文件。
每个在.pro 列出的.ts 文件都对应一个.qm 文件。具体操作见图 1 中 lrelease 命令。
5)、使用 QTranslator 加载生成的 tr/hellotr_la.qm 翻译文件
在程序入口(一般指 main()内),对应每个.qm 文件,声明体格 QTranslator 对象,分别
加载该.qm 文件。见主程序(粉红色部分)。
如果需要生成多个语言版本,可重复上述步骤,分别生成相应的.ts 和.qm 文件。然后针
对每种语言的安装环境,分别加载相应的.qm 文件。
6)、运行程序
完成上述步骤,就可以运行程序了。我们分别看看, tr/目录下有 hellotr_la.qm 文件和
没有 hellotr_la.qm 文件的运行结果(图 3、图 4):
图 3 没有翻译文件
图 4 有翻译文件
附录 QT 的安装
在红旗 Linux 桌面版 4.1 中安装 Qt 4.0.1
要安装 QT,首先要有 QT 的安装包。要想免费的使用 QT,就要下载其开源版。QT 开
源版是遵守 GPL 和 QPL 的。如果想要使用 QT 库来写商业软件,需要使用 QT 的商业版。
这里讲解的是 QT 开源版。
QT 开源版可以从这里获得:http://www.trolltech.com/download/opensource.html。
1、为避免麻烦,请用 root 用户登录。
2、下载完将近 20M 的 QT 源码包后将其解压。解压用在图形界面就能很好的进行。右
键点击下载的文件(qt-x11-opensource-src-4.0.1.tar.gz),选择“解压”,在弹出的窗口中点击“确
定”按钮。或者在终端下键入“tar –zxvf t-x11-opensource-src-4.0.1.tar.gz”并回车。
这 样 会 在 该 文 件 的 同 一 目 录 生 成 qt-x11-opensource-src-4.0.1 目 录 。 将
qt-x11-opensource-src-4.0.1 改名为 qt-4.0.1
3、将 qt-4.0.1 目录复制到/tmp 目录下。
4、进入 qt-4.0.1 目录,点击菜单“工具-->打开终端”。这样可以打开一个终端,并且当
前目录为/tmp/qt-4.0.1
5、在终端中键入如下命令“./configure”,经过两分钟左右,完成对 QT 库的设置,生成
makefile。之后程序会提示使用“gmake install”安装。
6、按照提示,在终端键入“gmake install”。键入“yes”并回车同意使用 GPL、QPL 协议
(QT 默认安装到/usr/local/Trolltech/Qt-4.0.1,如果想更改安装目录,使用-prefix 参数,具体
如何使用,请参照其他相关文档)。
7 、 若 只 想 root 用 户 使 用 QT , 则 打 开 “/root/.bash_profile” 文 件 , 在 其 中 加 入
“PATH=/usr/local/Trolltech/Qt-4.0.1/bin:$PATH”和“export PATH”两行。重新登录 root 用户,
设置生效,现在你可以使用 QT 了。在终端中键入“qtdemo”可以打开 QT 的演示程序,运行
“designer”可以打开 QT Designer,开始你的 QT 界面设计之旅了。
如果想以后新建的用户也可以使用 QT,则在/etc/skel/.bash_profile 文件中加入
“PATH=/usr/local/Trolltech/Qt-4.0.1/bin:$PATH”和“export PATH”两行。所加两行要视你的 QT
安装路径而定。
QT/Windows OpenSource 版本的安装
1、 下载安装文件
首先去官方网站下载 QT OpenSource (以下简称 QT ),现在的最新版本是 4.0.1 ,
下载连接: http://www.trolltech.com/download/qt/windows.html
官方网站申明 QT OpenSource 版本只支持 MinGW 编译器,所以在安装 QT 之前最好
先安装 MinGW 。不事先安装也可以, QT 安装时会让你指定 MinGW 的安装位置,如果未安
装,则 QT 的安装程序会引导你进行 MinGW 的网络安装。不过,我还是建议不要使用这种
方式,因为网络安装 MinGW 的速度实在是慢,而且经常下载一半就失去连接。不支持断点
续传,让你前功尽弃。
下载 MinGW 的安装程序,也花了我很大的功夫。使用官方网站 http://www.mingw.org/
提供的安装文件 MinGW-3.1.0-1.exe 之后,在 QT 安装时总是报告无法找到 MinGW 编译器
的错误,估计是缺失了什么文件,到现在也没搞明白。解决方法就是安装 Dev-cpp ,我安
装的是 devcpp-4.9.9.2_setup.exe ,里面包含了 MinGW 编译器。 Dev-cpp 的官方网站是
http://www.bloodshed.net/ ,可是我从来没成功登陆过。
2、 执行安装文件
先执行 devcpp-4.9.9.2_setup.exe 文件。其中,需要注意的是 [ 组件选择 ] 对话框。
在[组件选择]对话框中,请勾选上[Mingw compiler system]。
再执行 qt-win-opensource-4.0.1-mingw.exe 文件。其中,安装程序会让你指定已安
装的 MinGW 编译器的位置,如果事先没有安装,则可以在此时选择网络安装 MinGW。
另外,安装过程中要记得选择[设置环境变量]
Qt Designer 是一个非常好用的界面编辑工具,它生成窗体文件的后缀名是.ui,最好选择
将.ui 文件和 Qt Designer 程序关联起来。
3、 后续工作
运行:[开始]>[程序]>[Qt by Trolltech v4.0.1 (OpenSource)]>[Qt 4.0.1 (Build Debug
Libraries)],[Qt 4.0.1 (Build Debug Libraries)]安装 QT 的 Debug 库。
QT4 和 VS2005 的整合安装
1.下载源码包。
2.解压到 C:\Qt\4.2-msvc2005\ (如果整合 Visual Studio 2005)
3.下载 acs_4.2.2-patch1.zip 并解压到 C:\Qt\4.2-msvc2005\中。,
4.修改 C:\Program Files\Microsoft Visual Studio 8 Express\Common7\Tools\vsvars.bat 文件。
代码如下:
@set VSINSTALLDIR=c:\Program Files\Microsoft Visual Studio 8
@SET VCINSTALLDIR=c:\Program Files\Microsoft Visual Studio 8\VC
@SET FrameworkDir=c:\WINDOWS\Microsoft.NET\Framework
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0
@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR
@璐村惂鐢ㄦ埛_000076K馃惥 Setting environment for using Microsoft Visual Studio 2005 x86 tools.
@rem
@rem Root of Visual Studio IDE installed files.
@rem
@set DevEnvDir=c: \Program Files\Microsoft Visual Studio 8\Common7\IDE
@set QTDIR=C:\Qt\qtwin-4.2.2
@set QMAKESPEC=win32-msvc2005
@set PATH=%QTDIR%\bin; c:\Program Files\Microsoft Visual Studio 8\Common7\IDE; c:\Program Files\Microsoft
Visual Studio 8\VC\BIN; c:\Program Files\Microsoft Visual Studio 8\Common7\Tools; c:\Program Files\Microsoft Visual
Studio 8\SDK\v2.0\bin;c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;c:\Program Files\Microsoft Visual Studio
8\VC\VCPackages; %PATH%
@set INCLUDE=%QTDIR%\include; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include;
c:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE; %INCLUDE%
@set LIB=%QTDIR%\lib; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib; c:\Program
Files\Microsoft Visual Studio 8\VC\LIB; c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB%
@set LIBPATH=c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
@goto end
:error_no_VSINSTALLDIR
@echo ERROR: VSINSTALLDIR variable is not set.
@goto end
:error_no_VCINSTALLDIR
@echo ERROR: VCINSTALLDIR variable is not set.
@goto end
:end
5. 运行程序 -> Microsoft Visual Studio 2005-->Visual Studio ToolsàVisual Studio 2005
Command Prompt。
6. cd C:\Qt\4.2-msvc2005\
7. installpatch42.bat(运行此文件)
8. qconfigure.bat msvc2005 –debug-and-release -no-stl
9. nmake sub-src
10. nmake
11. 添加环境变量。PATH 中添加 C:\Qt\4.2-msvc2005\bin
12. 设置 QMAKESPEC 变量值为 win32-msvc2005
13. 当编写完一个程序之后,调用 Visual Studio 2005 Command Prompt。
14. qmake -project -t vcapp -o projectname.pro
15. qmake
将产生 projectname.vcproj 文件。
15.用 vs2005 打开之后,需要在 project-〉 property-〉 configuration properties-〉 linker-〉
input 添加 Imm32.lib, Ws2_32.lib, winmm.lib
