打开 Qt 工程文件pro,并添加如下代码
android{
langs.files += resource/*.qm
langs.path = /assets/Language
INSTALLS += langs
}
注意,这里只是示例写法,resource是我本地和工程文件 pro 同级目录的文件夹,里面包含了翻译文件*.qm, langs字段是可以随便定义的,首先指定langs.files 文件目录,然后指定 langs.path 将要存放到 Android 程序包中的路径,这里需要注意,通常这种三方文件在 Android 中都是存放到assets目录下,所以这里我们讲翻译文件存放到assets的Language文件夹中去,最后直接 INSTALLS即可。
设备语言的识别及加载翻译文件
QTranslator* trans = new QTranslator;
QLocale loc = QLocale::system();
QString defaultLocale = loc.name(); // e.g. "zh_CN"
defaultLocale.truncate(defaultLocale.lastIndexOf('_')); // e.g. "zh"
if(defaultLocale == "zh"){
if(loc.script() == QLocale::SimplifiedChineseScript){
if(trans->load("assets:/Language/dimis_zh_CN.qm")){
qDebug() << "load zh success---------";
app.installTranslator(trans);
}else{
qDebug() << "load zh fail---------";
}
}else{
if(trans->load("assets:/Language/dimis_tr_CN.qm")){//繁体
qDebug() << "load tr success---------";
a.installTranslator(trans);
}else{
qDebug() << "load tr fail---------";
}
}
}else{
if(trans->load("assets:/Language/dimis_en_CN.qm")){
qDebug() << "load en success---------";
a.installTranslator(trans);
}else{
qDebug() << "load en fail---------";
}
}