3

我是Qt的粉丝,经常更新,Qt5.1->5.2->5.3。

但是,标准按钮(如“确定”“取消”“保存”)的翻译在 Qt5.3 中不再起作用。它们没有翻译,只是简单的英语。

翻译代码不会随着 Qt 的每个版本而改变。喜欢:

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

任何想法?

[更新] AFAIN,这可能是一个错误。如果你不必在新的 Qts 中使用一些改进,那么回到 Qt5.1 是一个解决方案。

4

3 回答 3

4

从 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);
于 2015-01-12T17:24:25.227 回答
2

我遇到了同样的问题,并让它与更新的翻译文件一起工作。我不确定这是否是预期的行为,但我qt_de.qm的文件大小只有 1kB。然而,有一个名为qtbase_de.qmnow (154kB) 的文件似乎可以解决问题。

于 2014-11-27T07:08:03.493 回答
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则不会加载翻译。

于 2015-09-19T07:13:57.543 回答