使用QTranslator加载qm文件

sar*_*ara 7 qt translation file

我正在尝试使用翻译文件.我完成了所有程序:创建了ts文件,翻译了它,但是当我运行应用程序时,语言仍然和以前一样.

我在诺基亚的例子中工作,就像在说明中一样.

可能是我的问题?

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QTranslator* translator=new QTranslator(0);

    if(QFile::exists("hellotr_la.qm"))
        qWarning("failed-no file");

    if(! translator->load("hellotr_la.qm"))
        qWarning("failed loading"); //the warning appears ****

    app.installTranslator(translator);
}
Run Code Online (Sandbox Code Playgroud)

and*_*ref 20

.qm文件在哪里?您的代码正在尝试从当前工作目录加载文件,该目录在运行时可以是任何内容.在调用中指定目录路径QTranslator::load:

QTranslator* translator = new QTranslator();
if (translator->load("hellotr_la", "/path/to/folder/with/qm/files")) {
    app.installTranslator(translator);
}
Run Code Online (Sandbox Code Playgroud)

翻译可以从Qt资源加载,因此最好将它们捆绑在可执行文件中.然后你会加载它们有点像这样:

QTranslator* translator = new QTranslator();
if (translator->load("hellotr_la", ":/resources/translations")) {
    app.installTranslator(translator);
}
Run Code Online (Sandbox Code Playgroud)