ich habe in meinem Projekt für die einzelnen Module endlich Namespaces eingeführt aufgrund von Namenskollisionen. Die Klassen eines Moduls folgen in etwa diesem Muster
Code: Alles auswählen
#include <QMainWindow>
namespace SubModul1
{
class HelperClass1;
}
namespace SubModul2
{
class HelperClass2;
}
namespace ViewerUI
{
class MainWindow : public QMainWindow
{
public:
MainWindow(int argc, char* argv[]);
void setHelperClass(const SubModul1::HelperClass1* hc);
[...]
private:
const SubModul1::HelperClass1* mHelperClass;
};
}
Code: Alles auswählen
#include "MainWindow.hpp"
#include "HelperClass1.hpp"
namespace ViewerrUI
{
using SubModul1::HelperClass1;
MainWindow::MainWindow(int argc, char* argv[])
: QMainWindow(argc, argv)
{
[...]
// install translator
QTranslator* t = new QTranslator(this);
t->read(":/Viewer_de" // load german translation
installTranslator(t);
[...]
}
void MainWindow::setHelperClass(const HelperClass1* hc)
{
mHelperClass = hc;
QString text = tr("Helper Class added");
}
[...]
}
Danke für alle Hinweise,
AlGaN
Edit: Gerade habe ich in der Qt-Doku gelesen, dass es sowas wie einen Translation Context gibt, was ich aber nicht verstehe. Welchen Kontext soll denn das tr()-Makro haben, ich dachte, das wird von jeder von QObject abgeleiteten Klasse vererbt?
Edit2: Ok, Problem gelöst, ein nochmaliges Ausführen von lupdate hat die unter neuem Translation Context stehenden Strings eingesammelt