I\'m a fan of Qt and update it frequently, Qt5.1->5.2->5.3.
However, the tranalations of Standard buttons like \"Ok\" \"Cancel\" \"Save\" do not work anymore in Qt5.
Starting from Qt5.3 the qt_*.qm
is divided into multiple files (qt*_*.qm
) and now you have to copy qtbase_*.qm
to translation directory and use together.
QString translationsPath(QLibraryInfo::location(QLibraryInfo::TranslationsPath));
QLocale locale = QLocale::system();
QTranslator qtTranslator;
if (qtTranslator.load(locale, "qt", "_", translationsPath))
a.installTranslator(&qtTranslator);
QTranslator qtBaseTranslator;
if (qtBaseTranslator.load(locale, "qtbase", "_", translationsPath))
a.installTranslator(&qtBaseTranslator);
I had the same problem and got it to work with an updated translation file. I am not sure if this is the intended behaviour, but my qt_de.qm
has a filesize of only 1kB. There is however a file called qtbase_de.qm
now (154kB) which seems to do the trick.
This is source of qt_ru:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ru">
<dependencies>
<dependency catalog="qtbase_ru"/>
<dependency catalog="qtscript_ru"/>
<dependency catalog="qtquick1_ru"/>
<dependency catalog="qtmultimedia_ru"/>
<dependency catalog="qtxmlpatterns_ru"/>
</dependencies>
</TS>
Therefore, it is necessary to deploy application with all these translation files. If at least one file is missing, the translation qt_ru
will not load.