问题背景:
QT开发的产品需要运行在国产环境UOS操作系统下,其中打印弹框是英文(如下图所示),需要汉化。
解决步骤:
一、在qtcreator的安装目录下,找到qt_zh_CN.qm文件。
我的目录是:qt\5.12.2\mingw73_32\translations
二、将qt_zh_CN.qm文件拷贝到项目目录中,然后在main中使用如下代码,加载翻译文件
QString filePath = binDir + "/../config/linux/qt_zh_CN.qm";
QTranslator trans;
trans.load(filePath);
QApplication::installTranslator(&trans);
三、汉化后的效果如下图:
可以看到,有部分因为未汉化,或者部分文字汉化不准确
这是因为使用的qm文件不是新版的。
编译新版的qm文件
一、找到qt_zh_CN.ts文件,
在https://download.qt.io/archive/qt/上下载对应的qttranslations包,我下载的是:
dm8_20220822_rev166351_x86_rh6_64_ctm.tar
二、解压包,找到qt_zh_CN.ts文件,用txt编辑器打开,文件中的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<dependencies>
<dependency catalog="qtbase_zh_CN"/>
<dependency catalog="qtscript_zh_CN"/>
<dependency catalog="qtmultimedia_zh_CN"/>
<dependency catalog="qtxmlpatterns_zh_CN"/>
</dependencies>
</TS>
三、使用**.\lrelease.exe**命令生成新的qm文件
PS D:\soft\qt\5.12.2\mingw73_64\bin>.\lrelease.exe C:\Users\Administrator\Desktop\111\qtbase_zh_CN.ts C:\Users\Administrator\Desktop\111\qtmultimedia_zh_CN.ts C:\Users\Administrator\Desktop\111\qtscript_zh_CN.ts C:\Users\Administrator\Desktop\111\qtxmlpatterns_zh_CN.ts -qm C:\Users\Administrator\Desktop\111\qt_zh_CN.qm
四、将编译好的qm文件,放进项目,效果截图如下