环境:QT5.14.2 和QT Creator4.11.1(Community)
第一步:如图,在需要翻译的英文文本前使用tr方法
![](https://i-blog.csdnimg.cn/blog_migrate/0b0a4b30fa906aea4143fcb7f077dd97.png)
第二步:在.pro文件里添加这段:
TRANSLATIONS += \
zh.ts
![](https://i-blog.csdnimg.cn/blog_migrate/d675128b6da61a31a900f706f6df2cec.png)
第三步:在QT Creator自带的Qt语言家下选择:更新翻译
![](https://i-blog.csdnimg.cn/blog_migrate/dfdc12adc0d60e0da6ecc9d93a730e98.png)
这时生成的.ts文件在你的工程目录下:
![](https://i-blog.csdnimg.cn/blog_migrate/4dd6f888987e15acb4242a5e0b198ea4.png)
可以把文件添加到工程里方便查看和操作:
![](https://i-blog.csdnimg.cn/blog_migrate/3df7af8efd892f84de27a25ab8441315.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e3083c4324c276366ced149920a99373.png)
![](https://i-blog.csdnimg.cn/blog_migrate/15ac9b25c520e0a28440ee63b1e8f4d9.png)
然后右键该文件选择Qt Linguist打开:
![](https://i-blog.csdnimg.cn/blog_migrate/5541fb7a722e76c03fd4d60f0c782bab.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3b70d62f18d698014a1e5438fa88ede1.png)
选择你要翻译的文本,翻译即可:
![](https://i-blog.csdnimg.cn/blog_migrate/0a2094174c4c2ee77373134d2b04d439.png)
然后点击√:
![](https://i-blog.csdnimg.cn/blog_migrate/51d847a6353bb9cf105bf1fd56bf3317.png)
保存该文件。
查看ts文件可以看到刚刚修改的内容:
![](https://i-blog.csdnimg.cn/blog_migrate/833a4419b13284167de5f40d36e22406.png)
第四步:发布翻译:
![](https://i-blog.csdnimg.cn/blog_migrate/a0e424cf5eee6b596771ebcb9c1bb92d.png)
点击后会生成一个qm文件,同样在工程目录下:
![](https://i-blog.csdnimg.cn/blog_migrate/b9497907920d1b5973987a2e1d7b9bb1.png)
这时候,需要在程序上加载该文件,建议把qm文件拷贝到运行目录,如图,我这里拷贝到的是debug的exe同级目录下:
![](https://i-blog.csdnimg.cn/blog_migrate/6721df80d43f8fea4d5e5e7713df8daa.png)
同时在代码中增加包含翻译的库文件,和对应的加载代码:
![](https://i-blog.csdnimg.cn/blog_migrate/07ecea95623864ecf3094e16649ab19d.png)
这里贴下代码:
#include <QTranslator>
#include <QDebug>
QTranslator *qtTranslator = new QTranslator;
//获取翻译文件路径并加载
if(qtTranslator->load(QCoreApplication::applicationDirPath() + "/zh.qm")){
a.installTranslator(qtTranslator);
}
else{
qDebug("load failed!!\n");
qDebug() << QCoreApplication::applicationDirPath();
}
其中,QCoreApplication::applicationDirPath()是获取程序的运行目录的。
完成之后,调试运行一下,可以看到翻译成功了:
![](https://i-blog.csdnimg.cn/blog_migrate/9d6c06317d0a8379a598adc74a31a6ba.png)
后续有新增的翻译,先在程序里增加需要翻译的文本,如:
![](https://i-blog.csdnimg.cn/blog_migrate/f6b8d0d5b9f67ade284bf189095f0033.png)
然后选择:更新翻译
![](https://i-blog.csdnimg.cn/blog_migrate/80505251c940034a7fa24bffc6ba38d8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/69e308089f6efdf643faeb74fba40920.png)
再用Qt Linguist打开,进行翻译保存
![](https://i-blog.csdnimg.cn/blog_migrate/df99c00c181820262a0d6df7e59524de.png)
然后发布翻译:
![](https://i-blog.csdnimg.cn/blog_migrate/ff9cc9481f1888fdfe511f1739a1370c.png)
这里是更新工程目录下的qm文件,还需要再把该qm文件拷贝到程序运行目录:
更新翻译前:
![](https://i-blog.csdnimg.cn/blog_migrate/37995268584bf78743a9a9d03e8b82b9.png)
更新翻译后
![](https://i-blog.csdnimg.cn/blog_migrate/a34f73c1627349fb7b18270eda92548b.png)