• Qt的翻译文件QTranslator不能使用问题总结(原)


    笔者今天在自己工程中使用翻译文件,发现没有起作用,反复查找,发现是用宏定义了命名空间,生成.ts文件时,不会加上命名空间,所以生成的.qm文件在实际使用时,会无法找到对应的语句。

    如果将宏定义的命名空间修改为普通字符,则没有上述问题。

    刚才是namespace MyProject{ 是用#define USNS namespace MyProject{定义好宏,直接使用宏的,所以生成文件,不能自己将宏转换导致

    总结一下翻译碰到要注意的几个问题:

    1,基本使用

    QTextCodec * textCodec = QTextCodec::codecForName("System");
    QTextCodec::setCodecForLocale(textCodec);
    
    QTranslator translator;
    translator.load(":/testTranslate/testtranslate_zh.qm");
    a.installTranslator(&translator);

    2,上面需在窗口创建前,app创建之后调用

    3,如果类是在某命名空间内,生成的.ts文件的name会将命名空间名称加上,如果没有加上命名空间,翻译文件安装会出异常。如下:

     <name>TTTT::testTranslate</name>

  • 相关阅读:
    SpringCache使用
    SpringDataRedis使用
    Spring data jpa使用
    webpack的安装
    Vue基本使用
    Swagger使用
    gulp常用插件之gulp-notify使用
    gulp常用插件之gulp-beautify使用
    gulp常用插件之gulp-uglify使用
    gulp常用插件之gulp-size使用
  • 原文地址:https://www.cnblogs.com/yanhuiw/p/3913438.html
Copyright © 2020-2023  润新知