首先,在代码中将要翻译的字符串使用tr()函数包裹起来。例如:QSting str = tr(“hello world”);
接下来开始制作qm文件:
1)在工程.pro文件中写入: TRANSLATION += <.filename>_ZH_CN.ts #这里语言和区域名字一定要严格,否则之后生成的同名.qm文件无法被Qt翻译器加载#
2)利用命令行工具lupdate -verbose -no-obsolete <.pro’path and name>生成.ts文件。-no-obsolete参数表示生成的.ts文件中检测并剔除代码中不再存在的tr("< 英文文本>")。
使用Qt Creator的“工具”->“外部”->“Qt语言家”->“更新翻译(lupdate)”,等同于上述的lupdate -verbose,即:跳过检测过期的翻译原始文本。
3)使用Qt打开刚刚生成的.ts文件,依次编辑译文;ctrl+enter 保存编辑
4)利用Qt翻译家翻译这个.ts文件并发布为.qm文件
5)把.qm文件添加入资源文件中
6)在main.cpp中写如下语句:QTranslator translator;
translator.load(<资源文件中的.qm文件路径和名字>);
7)如果6)的返回值为true,那么把main.cpp中的QApplication对象执行.installTranslator(&translator); 这样翻译文件就加载完成了。
注意:若qt可以找到正确命名后的qm文件但却无法加载qm文件,可以先删除build目录再编译运行。