我是Qt的粉丝并经常更新,Qt5.1-> 5.2-> 5.3。
然而,在“Qt5.3”中,“Ok”,“取消”,“保存”之类的标准按钮的跟踪不再起作用了。 它们没有翻译,只是简单的英语。
翻译代码确实不更改每个版本的Qt。 像:
TRANSLATIONS = qt_fr.ts
QTranslator trans
trans.load("qt_fr");
a.installTranslator(&trans);
任何想法?
[更新] AFAIN,它可能是一个bug。如果U不必在新Qts中使用一些改进,那么回到Qt5.1是一个很好的解释。
答案 0 :(得分:3)
从Qt5.3开始,qt_*.qm
分为多个文件(qt*_*.qm
),现在您必须将qtbase_*.qm
复制到翻译目录并一起使用。
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);
答案 1 :(得分:2)
我遇到了同样的问题,并使用更新的翻译文件。我不确定这是否是预期的行为,但我的qt_de.qm
的文件大小只有1kB。然而,现在有一个名为qtbase_de.qm
的文件(154kB)似乎可以解决问题。
答案 2 :(得分:1)
这是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>
因此,有必要使用所有这些翻译文件部署应用程序。如果至少缺少一个文件,则不会加载翻译qt_ru
。