Quantcast
Channel: QtWebEngine
Viewing all articles
Browse latest Browse all 13965

Dynamic multilangual re-evaluation of qml Text in C++ using qsTr() function in qml

$
0
0
Hi everyone, I would like to know if there is any possibility to use qsTr() or it’s functionality in C++ to re-evaluate a qml Text element via C++ instead of the approach suggested in this article when changing the language of the application. http://qt-project.org/wiki/How_to_do_dynamic_translation_in_QML The qml text element which gets translated with the according .qm file to different languages. Text {     text: qsTr("Hello World")     onTextChanged: console.debug(text) } Somewhere after loading the new language file, I get the according text element and try to translate the new text manually via c++ but in general the textTranslated is never translated correctly! It is always the origin text – because no translation was found.     // ... loading the new translation file         if(m_translator->load(languageFile, filePath)) {         qApp->installTranslator(m_translator);     }         // ...       QObject *child = children.at(i); // the text element object     QString textContent = child->property("text").toString();     QString textTranslated = child->tr(qPrintable(textContent)); // returns textContent     //QString textTranslated = child->parent()->tr(qPrintable(textContent)); // returns textContent     //QString textTranslated = m_translator->translate(child->metaObject()->className(),qPrintable(textContent));  // returns ""     //QString textTranslated = QApplication::translate(child->metaObject()->className(),textContent.toStdString().c_str()); // returns textContent     qDebug() << "[Translator] text" << qPrintable(textContent) << " of element " << child << textTranslated;     child->setProperty("text",textTranslated); The translate functions need a context – which is char* – as first parameter, but I don’t really know which content this might be, because I assume the qml object content would be something different. I didn’t found any implementation of qsTr() neither in the source code nor in the web. It this a real function or only a makro for the Linguist. How does the translation process work anyway? Cheers, David

Viewing all articles
Browse latest Browse all 13965

Trending Articles