Hello all, I've played around a bit with an approach inspired by http://wiki.qt.io/How_to_do_dynamic_translation_in_QML .
I've made a component for easier use: TextTr.qml ------------------ Import QtQuick 2.0 Text { property string txt: "" text: qsTr(txt) + translator.refresh } ------------------ Used like this: TextTr { id: testString txt: QT_TR_NOOP("Testing") } However, I'm unable to get the TextTr element to actually display the translated string. TextTr { id: testString txt: QT_TR_NOOP("Testing") Component.onCompleted: { console.log(qsTr(txt), text); translator.forceRefresh(); //translator will emit refreshChanged() console.log(qsTr(txt), text); txt = "Test"; console.log(qsTr(txt), text); txt = "Testing"; console.log(qsTr(txt), text); } } Loading a Norwegian translation yields the following output: Tester Testing Tester Testing Test Testing Tester Testing That the value of text still is "Testing" when I set txt to "Test" seems to point towards a broken binding. If I instead do it directly like this: TextTr { id: testString text: qsTr("Testing") + translator.refresh } Then it works as intended, but then there's no point to the component and I have to have the "+ translator.refresh" part all over anyway. Another weird result I've had while testing is with this: TextTr.qml ----------------- import QtQuick 2.0 Text { property string txt: "" text: qsTr(txt) + translator.autoTranslate Connections { target: translator onAutoTranslateChanged: { console.log("Translation changed:", txt, "-->", qsTr(txt)); } } } And on the screen where I change the translation: Connections { target: translator onRefreshChanged: { console.log("Testing -->", qsTr("Testing")); } } Then the log in the TextTr element prints "Testing --> Testing" but the log in the screen prints "Testing --> Tester" Anyone have any idea why qsTr() seems to break down when used in a component like this? It seems like a caching or binding issue... -Even _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest