Qt Translation lupdate和名称空间

时间:2010-02-05 13:21:24

标签: c++ qt internationalization

在开发Qt应用程序时,我遇到了使用QTranslator的问题。经过一番研究后,我发现问题出在Qt的lupdate与

有问题
using namespace;

指令。按照here中的说明,我发现我必须在我的代码中使用特殊注释,以帮助lupdate理解这些类在命名空间内。特别评论是这样的:

 /*
 TRANSLATOR namespace::MyClass
 */

所以,我在我的所有来源中添加了这些评论,其中QStrings由tr管理。但是,仍然没有翻译应用程序。 QTranslator的installTranslator方法返回true。我用来安装Translator的实际代码是

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 个答案:

答案 0 :(得分:0)

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

您链接到的文档完全指定:

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()
}