QT Translate on Android
-
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)
-
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
-
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);@ -
Hi,
I currently don't use Qlocale::setDefault() but still the translation works for Mac, Windows and IOS
/Hakan
-
can you check if the file with translations exists? using QFile::exists()?
-
Absolutely. I do it later tonight. But it exist on Mac, Windows and IOS!
Thanks
/Hakan
-
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
-
QFile.exists() returns OK! And I think that translator.load() returns error if the given file/resource don't exist
/ Hakan
-
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. -
Yes the language detection works fine also on andriod
/ Hakan
-
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