Seite 1 von 1

Übersetzungen werden nicht genutzt

Verfasst: 25. August 2007 21:30
von GoaSkin
Gemäß den vielen immer gleichen Referenzen habe ich versucht, eine Übersetzung in ein Programm einzubauen. Allerdings erscheint das Programm nicht unter Anwendung der Übersetzungsdateien. Weder der Compiler, noch das Programm selbst gibt eine Warnmeldung aus.

QLocale::system().name() liefert als locale de_DE. Allerdings wird weder meine Übersetzungsdatei angewendet, noch erscheinen die QT-Standarddialoge in deutsch. (bei Message-Boxen sind alle Buttons englisch). Worin könnte der Fehler liegen?

Code: Alles auswählen

// load translated texts
QString locale = QLocale::system().name();
QTranslator translator;
translator.load(QString("sc4config_") + locale);
app.installTranslator(&translator);
Den .ts- und .qm-Dateien habe ich sowohl sc4config_de.ts als auch sc4config_de_DE.ts ausprobiert.

Verfasst: 26. August 2007 09:55
von Volker
Nimm die Debug Libraries von QT und benutze einen Debugger,... dann kannst du ja nachverfolgen, was die Anweisungen machen und wo sie evtl. mit einem Fehler abbrechen.

Re: Übersetzungen werden nicht genutzt

Verfasst: 27. August 2007 07:27
von macman
GoaSkin hat geschrieben:

Code: Alles auswählen

translator.load(QString("sc4config_") + locale);
app.installTranslator(&translator);
translator.load(...) liefert einen Bool-Wert zurück, den man auswerten sollte. Dann werden vom Translator natürlich nur die Strings ersetzt, die auch in tr() oder translate() stehen. Ist das bei den Standarddialogen und Messageboxen der Fall?

Verfasst: 28. August 2007 02:02
von GoaSkin
danke für die Antworten.

Das Problem ist teilweise gelöst - die eigenen Texte erscheinen übersetzt, nachdem ich die .qm-Dateien nun als eingebettete Resource verwende. Der wollte die unter OSX als Datei nicht laden . Sowas kommt unter OSX vor, wenn im Dateisystem der falsche individuelle MIME-Typ für die einzelne Datei hinterlegt ist und darum gehe ich auf Nummer sicher.

Jedoch wäre es mir auch ganz recht, wenn nun die Standardnachrichtenboxen über die QMessage-Funktionen etc. auch z.B. abbrechen statt cancel oder 'nicht speichern' statt 'do not save' zeigen bzw. das jeweilige Wort in einer beliebigen Sprache. Kann man da QT dazu anweisen, ohne das selbst übersetzen zu müssen?

Verfasst: 28. August 2007 07:34
von macman
GoaSkin hat geschrieben:Das Problem ist teilweise gelöst - die eigenen Texte erscheinen übersetzt, nachdem ich die .qm-Dateien nun als eingebettete Resource verwende.
Das ist aber nicht Sinn der Sache :-) Verkompliziert ja das hinzufügen zusätzlicher Übersetzungen.
GoaSkin hat geschrieben:Kann man da QT dazu anweisen, ohne das selbst übersetzen zu müssen?
Woher sollte Qt die entsprechende Übersetzung kennen? Schreib dir eine eigene MessageBox Klasse und Du bist das Problem los. Ist schnell gemacht und man ist noch variabler was Icons und Texte angeht.

Verfasst: 28. August 2007 14:56
von MichaelS
Woher sollte Qt die entsprechende Übersetzung kennen? Schreib dir eine eigene MessageBox Klasse und Du bist das Problem los.
Warum nicht einfach die mit QT ausgelieferte Sprachdatei qt_de.qm verwenden? Dann werden die Standarddialoge und Schaltflächen auch in deutscher Sprache angezeigt.

Verfasst: 28. August 2007 15:46
von macman
MichaelS hat geschrieben:Warum nicht einfach die mit QT ausgelieferte Sprachdatei qt_de.qm verwenden? Dann werden die Standarddialoge und Schaltflächen auch in deutscher Sprache angezeigt.
Und was ist mit den anderen Sprachen? Trolltech liefert ja nicht für alle Sprachen der Welt was mit. Interessanter ist es aber bei dynamischer Sprachumschaltung, die innerhalb des Programms vorgenommen wird. Da ist es schon besser das soweit möglich selbst zu managen.

Verfasst: 28. August 2007 16:30
von MichaelS
Und was ist mit den anderen Sprachen? Trolltech liefert ja nicht für alle Sprachen der Welt was mit.
In spanisch, französisch, protugiesisch, russisch, slowenisch ... liegen sie auch vor. Und ansonsten gibt es auch die ts-Datei, mit der Du jede andere Übersetzung auch vornehmen kannst.
Interessanter ist es aber bei dynamischer Sprachumschaltung, die innerhalb des Programms vorgenommen wird. Da ist es schon besser das soweit möglich selbst zu managen.
Warum soll das mit der qt-eigenen Sprachdatei nicht gehen?

Verfasst: 28. August 2007 17:13
von macman
MichaelS hat geschrieben:In spanisch, französisch, protugiesisch, russisch, slowenisch ... liegen sie auch vor. Und ansonsten gibt es auch die ts-Datei, mit der Du jede andere Übersetzung auch vornehmen kannst.
Die sind aber sehr groß und beinhalten viele Texte, die man meist nicht braucht. Wenn man dann noch z.B. die statischen Funktionen des Filedialogs nutzt...

Muss jeder selbst wissen, wie er es nutzt.