简体   繁体   English

Qt5加载.qm转换文件

[英]Qt5 Loading .qm translation file

I'm trying to translate my Qt5.5 application to English. 我正在尝试将Qt5.5应用程序翻译成英文。 I made .ts file and translated strings -> made English.qm file. 我制作了.ts文件并翻译了字符串->制作了English.qm文件。 I've placed it in resources: 我将其放置在资源中:

translations.qrc: translations.qrc:

<RCC>
    <qresource prefix="/translations">
        <file>Resources/Languages/English.qm</file>
    </qresource>
</RCC>

When I'm trying to load it, I can't... Could you help me how to do it the right way to load .qm and replace orginal strings by translated from .qm? 当我尝试加载它时,我无法...您能帮助我如何正确地加载.qm并通过从.qm转换来替换原始字符串吗? One additional question, how to load orginal strings when translation is loaded? 另一个问题是,在加载翻译时如何加载原始字符串?

fragment of main.cpp file: main.cpp文件的片段:

QtSingleApplication a(argc, argv);

QTranslator tra;
if (tra.load(":/translations/Resources/Languages/English.qm"))
{
    a.installTranslator(&tra);
}
else 
{
    qWarning() << "File not loaded"
}

I always get information "File not loaded". 我总是得到“文件未加载”信息。

This should work, tried it myself: 这应该可行,我自己尝试过:

<RCC>
    <qresource prefix="/translations">
        <file>resources/languages/english.qm</file>
    </qresource>
</RCC>

QApplication a(argc, argv);
QTranslator tra;
if (tra.load(":translations/resources/languages/english.qm")) {
    a.installTranslator(&tra);
    qDebug() << "File loaded";
} else {
    qWarning() << "File not loaded";
}
return a.exec();

RESOURCES += \
    resources.qrc

TRANSLATIONS += resources/languages/english.ts

Creation of the ts file: lupdate Test.pro ts文件的创建:lupdate Test.pro

Creation of the qm file: lrealease Test.pro 创建qm文件:lrealease Test.pro

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM