Frage zum Sprachwechsel...

Alles rund um die Programmierung mit Qt
Antworten
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Frage zum Sprachwechsel...

Beitrag von tribari »

Hallo zusammen,

ich weiss das diese oder ähnliche Fragen evtl. schon einmal gestellt wurden, aber irgendwie blicke ich da noch net so ganz durch ;-)

Das Problem ist, dass ich während der Laufzeit meine Sprache wechseln möchte.... dies klappt leider irgendwie nur teilweise. Und zwar nur bei Elementen die ich mit dem Qt-Designer erstellt habe, und welche in der .ui Datei unter der Methode retranslateUi() stehen....

Nun habe ich aber noch meinen Quellcode, welcher evtl. Texte in ein QLabel schreibt... diesen Text habe ich dann in "tr()" gesetzt... und in meiner Klasse gibt es auch eine Funktion, die bei wechsel der sprache den alten translator löscht, und den neuen reinlädt... klappt ja soweit auch alles... bis auf das texte die ich im quellcode generiere und anzeigen lasse, nicht übersetzt werden...

wo ist mein denkfehler? ich weiss nämlich nicht genau wie ich das nun lösen soll...


Danke euch schonmal für die Hilfe ;-)

Ohne dieses forum hätte ich glaub ich schon mehrmals das handtuch geworfen *qtforumlob* :)
ganwell
Beiträge: 13
Registriert: 8. Januar 2009 18:50
Wohnort: Luzern, Schweiz
Kontaktdaten:

Beitrag von ganwell »

tribari hat geschrieben:bis auf das texte die ich im quellcode generiere und anzeigen lasse, nicht übersetzt werden...
Du musst dafür sorgen, dass dieser Code nochmal durchlaufen wird. z.B. indem Du diese Zuweisungen in einer speziellen doMyTranslation() Methode machst und diese noch mal aufrufst. Oder vielleicht das ganze Widget schliesst und neu lädst.

Grundsätzlich: was einmal durch tr lief, kann nicht "magisch" übersetzt werden, sondern ist einfach ein String, der muss neu generiert werden.
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Beitrag von tribari »

Okay... nun habe ich auch verstanden wie Qt da vorgeht ;-) Ich war echt der festen meinung, das tr() diese dinge hätte sofort übersetzen können *grins*
Naja evtl. war ich etwas zu naiv ... aber nun gut, nun weiss ich wie ich vorzugehen habe... das ist das wichtigste :D

Danke auf jeden fall für den tip.
Antworten