Übersetzungen werden nicht genutzt

Alles rund um die Programmierung mit Qt
Antworten
GoaSkin
Beiträge: 103
Registriert: 13. Juni 2007 00:14
Wohnort: Darmstadt

Übersetzungen werden nicht genutzt

Beitrag 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.
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag 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.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Übersetzungen werden nicht genutzt

Beitrag 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?
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
GoaSkin
Beiträge: 103
Registriert: 13. Juni 2007 00:14
Wohnort: Darmstadt

Beitrag 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?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Beitrag 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.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Beitrag 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?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Antworten