diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2016-05-03 17:20:53 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-05-03 17:20:53 -0700 |
commit | e47327c87a1b456852e8594eedc2882a7e1c9bb4 (patch) | |
tree | 4b47bbe3b89e605cdf85fb139c40ee215a7b5bea | |
parent | 80fcd710eef489cd2c7038e53400bdc30a1f6ca1 (diff) | |
download | subsurface-e47327c87a1b456852e8594eedc2882a7e1c9bb4.tar.gz |
Android build: prepare and copy translations into the APK
And then load them at runtime.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | core/qt-init.cpp | 11 | ||||
-rw-r--r-- | packaging/android/build.sh | 6 |
2 files changed, 15 insertions, 2 deletions
diff --git a/core/qt-init.cpp b/core/qt-init.cpp index 3dffc6f31..3d07899ce 100644 --- a/core/qt-init.cpp +++ b/core/qt-init.cpp @@ -41,13 +41,20 @@ void init_qt_late() // on Linux this tends to be en-US, but on the Mac it's just en if (!uiLang.startsWith("en") || uiLang.startsWith("en-GB")) { qtTranslator = new QTranslator; - if (qtTranslator->load(loc, "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { + QString translationLocation; +#ifdef Q_OS_ANDROID + translationLocation = QLatin1Literal("assets:/translations"); +#else + translationLocation = QLibraryInfo::location(QLibraryInfo::TranslationsPath); +#endif + if (qtTranslator->load(loc, "qt", "_", translationLocation)) { application->installTranslator(qtTranslator); } else { - qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << QLibraryInfo::location(QLibraryInfo::TranslationsPath); + qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << translationLocation; } ssrfTranslator = new QTranslator; if (ssrfTranslator->load(loc, "subsurface", "_") || + ssrfTranslator->load(loc, "subsurface", "_", translationLocation) || ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) || ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) { application->installTranslator(ssrfTranslator); diff --git a/packaging/android/build.sh b/packaging/android/build.sh index 2f306630e..dfe489eef 100644 --- a/packaging/android/build.sh +++ b/packaging/android/build.sh @@ -367,6 +367,12 @@ rm -rf android-mobile cp -a $SUBSURFACE_SOURCE/android-mobile . sed -i -e "s/@SUBSURFACE_MOBILE_VERSION@/\"$SUBSURFACE_MOBILE_VERSION\"/;s/@BUILD_NR@/$BUILD_NR/" android-mobile/AndroidManifest.xml +# now make the translations +make translations +mkdir -p assets/translations +cp -a translations/*.qm assets/translations +cp -a ${QT5_ANDROID}/android_${QT_ARCH}/translations/*.qm assets/translations + # now build Subsurface and use the rest of the command line arguments make $@ |