版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kidults/article/details/87969380
- 在工程中,新建一个资源文件,命名为translator
资源文件在工程目录中的结构
2. 修改pro
在pro文件中添加
TRANSLATIONS += resources/tr_zh.ts \
resources/tr_en.ts
3.代码中所有需要翻译的字符串用tr("")包含 eg: tr(“中文”)
4.如下图,点击更新翻译(lupdate)
此时会在工程目录新建一个resources文件夹 ,并在其中生成了 tr_en.ts 和 tr_zh.ts 两个文件
5. 打开tr_zh.ts (翻译成中文)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>Form</name>
<message>
<location filename="../form.cpp" line="10"/>
<source>中文</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
修改 <translation type="unfinished"></translation> 为
<translation type="unfinished">中文</translation>
- 打开tr_en.ts(翻译成英文)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>Form</name>
<message>
<location filename="../form.cpp" line="10"/>
<source>中文</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
修改
<source>中文</source>
<translation type="unfinished"></translation> 为
<source>中文</source>
<translation type="unfinished">Chinese</translation>
除了上述手动修改,还可以使用Qt Linguist 工具进行编辑
- 如下图,点击发布翻译(lrelease)
会在resources中 生成 tr_en.qm 和tr_zh.qm两个文件 - 将qm文件添加到工程中
- 切换
#include <QTranslator>
private:
QTranslator translator;
if(!qApp->removeTranslator(&translator)){
qDebug()<<"remove error....";
}
if( 中文显示 ){
if(translator.load(":/resources/tr_zh.qm")){
qApp->installTranslator(&translator);
}else{
qDebug()<<"load Chinese file error";
}
}else if(英文显示){
if(translator.load(":/resources/tr_en.qm")){
qApp->installTranslator(&translator);
}else{
qDebug()<<"load English file error";
}
}
**
注:翻译文件加载的位置必须在界面实例化之前完成,否则是没有效果的
**