在开发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();
有没有人遇到同样的问题?我做错了什么?
编辑 -
纠正了上面代码中的一个小错误,但仍然没有结果。
答案 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()
}