0

全部:

通常我们在使用 Qt5 时有正常的项目结构:

/res
    en-US-app.qm
    en-US-dll.qm
/app
    app.pro
/dll
    dll.pro
strings.h

dll 和 app 需要使用相同的字符串,其中 strings.h 是:

#include <QObject>
class Strings:public QObject
{
    Q_OBJECT
public:
#define STR_HELLO Strings::tr("你好")
#define STR_HELLO2 Strings::tr("好不好&quot;)
};

在 dll 中:

#include "../strings.h"
void Dll::pbClick()
{
    ui->myPb->setText(STR_HELLO);
    ui->myPb2->setText(STR_HELLO2);
}

在应用程序中:

#include "../strings.h"
void App::pbClick()
{
    ui->myLbl->setText(STR_HELLO);
    ui->myLbl2->setText(STR_HELLO2);
}

现在它适用于dll和app中的翻译,他们都使用过STR_HELLO和STR_HELLO2。

但不幸的是,我必须翻译两次STR_HELLO和STR_HELLO2!每个项目都需要翻译(en-US-app.ts 和 en-US-dll.ts)!

我怎样才能为所有项目只翻译一次???

4

0 回答 0