【发布时间】:2013-10-26 17:06:48
【问题描述】:
请让我知道为什么它不起作用我是 Qt 的新手。这是代码
class Transl
{
public:
static const QString str;
};
const QString Transl::str = QObject::tr("Hello world");
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTranslator translator;
translator.load("trans_la");
app.installTranslator(&translator);
QPushButton hello(Transl::str);
hello.resize(100, 30);
hello.show();
return app.exec();
}
我的 trans_la.ts 文件包含我通过 lupdate 生成的这个。
<TS version="2.0">
<context>
<name>QObject</name>
<message>
<location filename="main.cpp" line="10"/>
<source>Hello world</source>
<translation>Orbis, te saluto!</translation>
</message>
</context>
</TS>
然后我执行生成 trans_la.qm 的 lrelease。但是当我运行我的可执行文件而不是显示翻译后的字符串时,它显示“Hello world”。请告诉我为什么它不起作用。
【问题讨论】:
-
可能是因为你的编译器在执行main()之前初始化了Transl::str?
标签: c++ qt localization internationalization translation