我在翻译我的qt应用程序(Windows上的qt 4.7.4)时遇到了一个奇怪的问题。 会发生以下情况:
1.-我执行lupdate并生成一个.ts文件。
2.-我用qt语言学家编辑生成的.ts文件。
3.-我使用之前的.ts文件执行lrelease。
4.-从Netbeans,我清理并构建项目,然后运行它。
当我的应用程序运行时,大多数小部件(标签,按钮,标题,菜单操作,菜单)都会根据我之前生成的翻译文件进行翻译。问题是虽然我在翻译文件中为他们提供了翻译,但有些元素没有被翻译(Qt Linguist认可了他们)。
我的问题是:是否有理由翻译某些文本而忽略其他文本?
我确保每个文本都在tr()中。 (正如我之前所说,他们都出现在Qt Linguist中。)
感谢您的帮助。
答案 0 :(得分:0)
因此它仅适用于Linux而不适用于mingw32 / mingw64
的main.cpp
#include <QtGui/QApplication>
#include "test_w32.h"
#include <QTranslator>
#include <QLocale>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QString locale = QLocale::system().name();
QTranslator translator;
translator.load(QString("test_w32_") +locale);
app.installTranslator(&translator);
test_w32 foo;
foo.show();
return app.exec();
}
test_w32.h
#ifndef test_w32_H
#define test_w32_H
#include <QtGui/QMainWindow>
class test_w32 : public QMainWindow
{
Q_OBJECT
public:
test_w32();
virtual ~test_w32();
};
#endif // test_w32_H
test_w32.cpp
#include "test_w32.h"
#include <QtGui/QLabel>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QAction>
test_w32::test_w32()
{
QLabel* l = new QLabel( this );
l->setText(trUtf8( "Hello World!" ));
setCentralWidget( l );
QAction* a = new QAction(this);
a->setText(trUtf8( "Quit" ));
connect(a, SIGNAL(triggered()), SLOT(close()) );
menuBar()->addMenu(trUtf8( "File" ))->addAction( a );
}
test_w32::~test_w32()
{}
#include "test_w32.moc"
问题是什么? 感谢