Further to Robert's reply, you need to change the file name in both the qrc file and in main.cpp.

Regards, Tony

On 27/04/2021 3:31 pm, Robert Hairgrove wrote:

You need to load the ".qm" file which is the binary generated by running lrelease, not the ".ts" file.

In addition to your "hello_la.qm" file, you might want to load Qt's "qtbase_la.qm" file (if there is one) which contains translations for most of the built-in GUI elements.

HTH, Bob

--

On 27.04.21 07:06, Nicholas Yue wrote:
Hi,

  I am trying to embed translation file as a resource but when I run the compiled program, it fails to load the translation

ERROR: Translation failure to load

main.cpp
***********
#include <QApplication>
#include <QPushButton>
#include <QTranslator>
#include <iostream>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QString appDir = QCoreApplication::applicationDirPath();
    QTranslator translator;
    QString translationDir = appDir + "/translation";
    // if (translator.load("hellotr_la",translationDir)) {
if (translator.load(":/language/hellotr_la.ts")) {
    app.installTranslator(&translator);
    } else {
    std::cerr << "ERROR: Translation failure to load" << std::endl;
    }

    QPushButton hello(QPushButton::tr("Hello world!"));
    hello.resize(100, 30);

    hello.show();
    return app.exec();
}

hellotr_lang.qrc
******************
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/language">
    <file>hellotr_la.ts</file>
</qresource>
</RCC>

hellotr_la.ts
*************
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="la_VA">
<context>
    <name>QPushButton</name>
    <message>
        <location filename="main.cpp" line="19"/>
        <source>Hello world!</source>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>

hellotr,pro
************
SOURCES      = main.cpp
TRANSLATIONS = hellotr_la.ts

target.path = $$[QT_INSTALL_EXAMPLES]/linguist/hellotr
INSTALLS += target

QT += widgets

RESOURCES += hellotr_lang.qrc


Cheers
--
Nicholas Yue
Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5
Custom Dev - C++ porting, OSX, Linux, Windows
http://au.linkedin.com/in/nicholasyue <http://au.linkedin.com/in/nicholasyue> https://vimeo.com/channels/naiadtools <https://vimeo.com/channels/naiadtools>

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to