[Interest] Embedding language translation as resource

Tony Rietwyk tony at rightsoft.com.au
Tue Apr 27 07:40:46 CEST 2021


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 at qt-project.org
>> https://lists.qt-project.org/listinfo/interest
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210427/cfbd8a7f/attachment.html>


More information about the Interest mailing list