Qt裝載多個多語言文件,主要有兩種方式:spa
在主程序中裝載,主程序爲A 動態快爲B 爲A 與B 分別生成A.qm B.am文件,而後在A的主程序一塊兒裝載翻譯
QApplication a(argc, argv);對象
// 定義兩個QTranslator 對象,分別對應不一樣的翻譯文件
QTranslator translator;
QTranslator translatorsys;
// 各自load不一樣的qm文件(qm文件已添加到當前工程的資源中)
translator.load(":/cs.qm");
translatorsys.load(":/qt_zh_CN.qm");
// 分別安裝翻譯文件
a.installTranslator(&translator);
a.installTranslator(&translatorsys);
生命週期
第二種是在不一樣模塊中分別裝載。這時候要注意一點,定義的QTranslator要在整個模塊的生存期內都有效,否則只在有效期內的翻譯有效,其餘時候翻譯無效。網上大部分都是定義一個局部變量,而後裝載,局部變量的生命週期結束後,翻譯就無效。資源
QTranslator translator; 設置爲在整個動態庫加載生存週期內都有效的變量
translator.load(QString(test_zh.qm", ".");
QCoreApplication::installTranslator(&translator);qt