1. 项目.pro文件新添加
TRANSLATIONS = XXX_zh_CN.ts
TRANSLATIONS += XXX_en.ts
CODECFORTR = utf-8
2. main函数中添加
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
//加载翻译文件
QFile traFile(lanFileStr);bool bRet = false;QTranslator trans;if (traFile.exists()) {bRet = trans.load(traFile.fileName());if (bRet) {a.installTranslator(&trans);}}
3. 项目cpp文件中的中文要以格式:
trUtf8("中文")/QObject::trUtf8("中文"); 或者 tr("中文")/QObject::tr("中文");
4. 生成ts文件(命令)
#lupdate XXX.pro
5. 用 Qt Linguist打开要翻译的ts文件,并翻译好译文,保存,关闭Qt Linguist 6. 文本编辑工具打 ts 文件,把< message >全部替换为< message utf8 = "true" >7. 再Qt Linguist打开ts文件,发布,此时生成的qm文件.
8. 注意, 静态的字符串不能被翻译,得在main函数加载完成翻译文件之后的字符串才能成功翻译.