QT for android识别设备语言并加载相应的翻译文件

打开 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---------";
        }
    }

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值