Translations of QMessageBox not work in Qt5.3

走远了吗. 提交于 2019-11-28 09:01:28

问题


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.3. They are not translated, but just plain English.

The Code for translations does NOT change through each version of Qt. like:

TRANSLATIONS = qt_fr.ts
QTranslator trans
trans.load("qt_fr");
a.installTranslator(&trans);

any idea?

[Update] AFAIN, it might be a bug. Go back to Qt5.1 is a slution if U dont have to use some improvements in new Qts.


回答1:


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);



回答2:


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.




回答3:


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.



来源:https://stackoverflow.com/questions/25850108/translations-of-qmessagebox-not-work-in-qt5-3

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!