Gleich mein erster Test klappt nicht, obwohl ich imo streng nach Doku vor gegangen bin. Es wird einfach nicht der Button in De angezeigt, obwohl die .qm Dateien lt. sysinternal's filemon geladen werden.
Hier der source:
Code: Alles auswählen
#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QWidget>
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget* parent = 0);
};
MyWidget::MyWidget(QWidget* parent)
: QWidget(parent)
{
setFixedSize(200, 120);
QPushButton *quit = new QPushButton(tr("Quit"), this);
quit->setGeometry(62, 40, 75, 30);
quit->setFont(QFont("Times", 18, QFont::Bold));
connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QString lang = QLocale::system().name();
lang.chop(3); // remove country for faster translation file searching
//lang = lang.left(lang.indexOf("_")); // a saver version of above?
QTranslator qtTranslator;
qtTranslator.load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
QTranslator appTranslator;
appTranslator.load("QtBoost_" + lang, app.applicationDirPath() + "/i18n");
app.installTranslator(&appTranslator);
MyWidget widget;
widget.show();
return app.exec();
}
Code: Alles auswählen
<!DOCTYPE TS><TS>
<context>
<name>MyWidget</name>
<message>
<source>Quit</source>
<translation>Tschüss</translation>
</message>
</context>
</TS>
Viele Grüße
Olaf[/code]