[Qt] Exceptions übersetzen mit Linguist
-
Hi
Wahrscheinlich geht es nicht, aber vielleicht hab ich was übersehn.
Ich möchte die Exceptions, die ich abfange in einer Messagebox ausgeben. Natürlich sind die in Englisch, und ich würde die auch gern übersetzen. Habs mal so probiert, aber das geht natürlich nicht.//...Im Header signals: void send_message( const QString& text ); //... //...In einer Methode try { ///... } catch( std::logic_error& e ) { emit send_message( tr( e.what() ) ); }
Wenn jemand eine Idee hat, wär das toll
Grüsse
-
Im $QTDIR gibt es ein Verzeichnis "translations". Dort liegen Dateien nach dem Schema "qt_??.qm". ?? steht dabei für einen Sprachcode, z. B. "de". Ich vermute
jetzt mal, daß dort die Systemstrings von QT übersetzt werden (bin mir aber nicht
zu 100 % sicher).
Diese Übersetzungen würde man mit QTranslator laden, etwa so:QApplication a; QTranslator translator(0); translator.load("qt_de.qm", "Pfad/zur/Datei"); a.installTranslator(&translator); a.setMainWidget(&DeinMainWidget);
Es ist wichtig, daß der Translator vor dem MainWidget gesetzt wird.
Obiges Verfahren bezieht sich auf QT 3.3.x, sollte aber wohl auch so oder so ähnlich mit QT4 funktionieren.
Im Zweifelsfall sei auf die QT-Dokumentation zu den Klassen QTranslator und QApplication verwiesen.
-
Danke, werds probieren.