tr 函数不翻译单词,而 translate 函数则

问题描述 投票:0回答:1

有这样的代码:

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QTranslator translator;
    const QString dir = "/usr/share/qt6/translations";

    if (translator.load("qt_ru", dir)) {
        QApplication::installTranslator(&translator);
        qDebug() << QApplication::translate("QShortcut", "Open");
        qDebug() << QApplication::tr("Open");
    }

    ...
}

其输出:

"Открыть"
"Open"

为什么第二种情况没有翻译“Open”这个词?

qt localization translation
1个回答
0
投票

如果

QApplication::translate("QShortcut", "Open");

有效,但是

QApplication::tr("Open");

不是,这意味着“打开”位于“QShortcut”上下文中。要使用

tr()
获取上下文,请写:

QShortcut:tr("Open");

了解更多:https://doc.qt.io/qt-6/i18n-source-translation.html#mark-strings-for-translation

© www.soinside.com 2019 - 2024. All rights reserved.