QT Translate on Android
-
wrote on 19 Mar 2014, 13:10 last edited by
Hi,
I have an app running on Mac Desktop, Windows Desktop, IPhone and Andrioid. And the translation feature works well for the three first mentioned, but on Andriod only the default translation works.
I can see that I got the expected language-code on all four platforms (sv_SE) but still the translation fails on Andriod. Any idea why? Is it a known problem?
Regards
Hakan -
wrote on 19 Mar 2014, 14:18 last edited by
Hi,
I am using QTranslate in my Android app and it works perfectly. Do you load and install translation before you load your view?
In my QML app I needed to load translation before loading main.qml file.BTW its Qt not QT(QuickTime)
-
wrote on 19 Mar 2014, 14:22 last edited by
Thank you for rapid answer!
I load the translation (from a resource file) the first thing in my main C++ app (before loading main.qml)
/ Hakan
-
wrote on 19 Mar 2014, 14:37 last edited by
So are you sure the file exists(the one with translation)? Can you check it @QFile::exists()@
Are you installing translator properly?
@QLocale::setDefault(QLocale::English);
qtTranslator.load(":/tr/translations_en.qm");
app.installTranslator(&qtTranslator);@ -
wrote on 19 Mar 2014, 14:39 last edited by
Hi,
I currently don't use Qlocale::setDefault() but still the translation works for Mac, Windows and IOS
/Hakan
-
wrote on 19 Mar 2014, 14:50 last edited by
can you check if the file with translations exists? using QFile::exists()?
-
wrote on 19 Mar 2014, 14:53 last edited by
Absolutely. I do it later tonight. But it exist on Mac, Windows and IOS!
Thanks
/Hakan
-
wrote on 19 Mar 2014, 15:24 last edited by
Meanwhile ...
My code in main looks like this;
QTranslator translator;
if(translator.load(":/xxx.qm") != 1) { ...}And my resource file like this:
<RCC>
<qresource>
<file alias="xxx.qm">tr/xxx_en.qm</file>
</qresource>
<qresource lang="sv">
<file alias="xxx.qm">tr/xxx_sv.qm</file>
</qresource>
<qresource lang="de">
<file alias="xxx.qm">tr/xxx_de.qm</file>
</qresource>
</RCC>/Hakan
-
wrote on 19 Mar 2014, 18:45 last edited by
QFile.exists() returns OK! And I think that translator.load() returns error if the given file/resource don't exist
/ Hakan
-
wrote on 20 Mar 2014, 21:02 last edited by
did you check if the language detection works on android?
e.g. with
@QLocale::system().name()@
if not your have to set it manually like kolegs said, also you should try and set the file manually and see if that works on android first. -
wrote on 20 Mar 2014, 21:14 last edited by
Yes the language detection works fine also on andriod
/ Hakan
-
wrote on 20 Apr 2014, 11:37 last edited by
Which Qt version do you use? There seems a buf in Qt 5.1 that may affect you (prevents to find the correct locale), see QTBUG-31651; referenced in https://blog.qt.digia.com/blog/2013/07/23/anatomy-of-a-qt-5-for-android-application/#comment-1103021