Q:

translate buttons on qml dialogs

I am using QML MessageDialog with a Cancel and a Yes button. My phone is set to german, but the Cancel and Yes button are not translated.
I am following the qt documentation here and added this to my main:
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(),
        QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);

It does not work. This code:
qDebug() << QLibraryInfo::location(QLibraryInfo::TranslationsPath);
qDebug() << qtTranslator.isEmpty();

Tells me:

The translation path is:  /work/build/______________________________PADDING______________________________/translations
The qtTranslator object is empty.

I also load a translator for my own strings, and that works.
So I do I properly initialize translation of Qt internal stings on android?

A:

If you want translate your application you should distrubute qt translation files with it. For android simple copy translation files to assets folder. Then set this path for qtTranslator. 
You can do this with qmake. Just put this to your .pro file:
android {
    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
    TRDESTDIR = $$system_path($$PWD/android/assets/translations)
    QMAKE_POST_LINK = $$QMAKE_COPY $$shell_path($$[QT_INSTALL_TRANSLATIONS]/qt*_ru.qm) $$TRDESTDIR
}

Of course you should change ANDROID_PACKAGE_SOURCE_DIR and TRDESTDIR to your actual location if it differs. Also you should change qt*_ru.qm to your language.
Then you could load translation like:
qtTranslator.load("qt_ru","assets:/translations")

