生成.ts文件,在pro项目文件里增加TRANSLATIONS =translate_zh_CN.ts,名字任取。且指定编码。这点非常重要,不然可能会在生成的ts 文件里包括乱码,不利于后期翻译。
TRANSLATIONS = translate_zh_CN.tstranslate_zh_EN.ts translate_zh_TW.ts
CODECFORTR = utf-8 #or gbk
#DEFAULTCODEC = utf-8
#CODEC = utf-8
注意,假设CODECFORTR 未定义。将找DEFAULTCODEC。假设还未定义,将找CODEC。3个都未定义的话,就採用latin1
在pro文件上右击,选择 “在此打开命令行控制台”
在命令行指定 ts 文件时,还须要在命令行指定编码。保证生成的ts文件里的中文不含乱码。
lupdate hello.pro -codecfortr utf-8
假设你的lupdate 工具所在文件夹未增加环境变量,将找不到此命令,你能够搜索查找到luddate.exe所在文件夹。然后运行:
C:\Qt\4.8.0\bin\lupdate.exehello.pro -codecfortr utf-8
将会生成之前在
.pro
文件里指定的三个
ts
文件
translate_zh_CN.tstranslate_zh_EN.ts
translate_zh_TW.ts
再在命令窗体中输入
linguist
(翻译工具)。打开翻译工具;
或
C:\Qt\4.8.0\bin\
linguist.exe
弹出图形化界面工具。
然后就能够一个一个翻译了。最后点击
linguist
文件菜单中的公布,则会生成一个与
ts
文件同名的
qm
文件
在代码中须要的地方载入字符文件就可以
QTranslator
translator;
translator.load(
"./translate_zh_CN.qm"
);
qApp->installTranslator(&translator);
ui
->retranslateUi(
this
);
注:
如是代码中的中文字符,须要翻译的,要用
QObject
::tr(
"
草稿箱
"
) 将中文字符包括起来,才会显示在ts文件里。
另一种生成qm的方法,比如在
translate_zh_EN.ts
文件里将“帮助”翻译为“
Help
”
<message>
<locationfilename="mainwindow.ui" line="347"/>
<source>帮助</source>
<translationtype="unfinished">Help</translation>
</message>
然后用release 命令生成指定的qm文件。
C:\Qt\4.8.0\bin\lrelease.exe translate_zh_EN.ts -qm translate_zh_EN.qm
这样就能够任意调用不同的qm文件。自由转换软件界面的显示语言了。