Qt在可执行文件中(exe)实现多语言非常简单,直接在main函数中,通过如下调用即可实现:
QApplication a(argc, argv);
QTranslator translator;
translator.load("test_zh.qm", "."); // test_zh为语言文件qm
a.installTranslator(&translator);
但是,现在软件的结构基本上是 “多exe + 多dll”的形式,尤其是多dll几乎每个软件都会用到。
dll不会有main函数,那此时如何实现多语言呢?包含如下步骤:
1、在dll工程中创建Translation文件.ts,记得创建文件之前,一定将工程中所有cpp文件保存为UTF-8格式(带签名),否则中文会出现乱码;
2、将ts翻译文件lrelease,生成可被Qt加载的qm文件;
3、在dll主界面的构造函数中,调用如下方法加载qm翻译文件:
TestDLL::TestDLL()
{
QTranslator translator;
translator.load(QString(test_zh.qm", ".