代码之家  ›  专栏  ›  技术社区  ›  cake

qt转换lupdate和名称空间

  •  2
  • cake  · 技术社区  · 14 年前

    在开发qt应用程序时,我遇到了使用qtranslator的问题。经过一点研究,我发现问题出在qt的lupdate有问题

    using namespace;
    

    指令。遵循中的说明 here ,我发现我必须在代码中使用特殊注释,以帮助lupdate理解类位于命名空间中。特别评论如下:

     /*
     TRANSLATOR namespace::MyClass
     */
    

    因此,我在所有由tr管理qstring的源代码中添加了这些注释。但是,应用程序仍然没有被翻译。qtranslator的installtranslator方法返回true。我用来安装翻译程序的实际代码是

    Application app(argc,argv); //Application is a subclass of QApplication
    QTextCoded::setCodecForTr(QTextCodec::codecForName("utf8"));
    QTranslator translator;
    translator.load(QString("..//language//") + locale);
    app.installTranslator(&translator);
    app.exec();
    

    有人遇到过同样的问题吗?我做错什么了?

    编辑——

    更正了上面代码中的一个小错误,但仍然没有结果。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Marcin Gil    14 年前

    您确实安装了翻译程序,但没有为其加载任何翻译。

    链接到的文档准确地指定了:

    int main(int argc, char *argv[])
    {
         QApplication app(argc, argv);
    
         QTranslator translator;
         translator.load(QString("arrowpad_") + locale); // here load translation
         app.installTranslator(&translator);
    
         app.exec()
    }