Seite 1 von 1

Übersetzung eines QLabels mit HTML Code Inhalt

Verfasst: 23. April 2009 08:28
von cobra
Hi,
dies ist mein erster Post hier drin, bitte nicht gleich steinigen wenn mal was nicht so ganz klar sein sollte ;)

ich habe in meiner kleinen Anwendung ein QLabel eingebracht, dessen Aussehen ich mit HTML gestaltet habe.
Die Anwendung ist multilingual.
Ich bekomme es aber nicht hin dieses QLabel mittels der Sprachfiles (.ts, .qm) zu übersetzen.
Welchen Ansatz könnte ich da wählen, um eine vollständige Übersetzung zu erreichen?
Zur Info: Ich nutze QT 4.5 unter Debian.

Verfasst: 23. April 2009 08:38
von AuE
Schau mal in der Doku nach TR

Ich glaube es gibt auch dieses Hello World Bsp das genau das macht. Ich glaub das kannst du dir im Linguist Manual ansehen!

Verfasst: 23. April 2009 09:01
von cobra
Ein Info habe ich noch vergessen.
Der Code ist nur in der .ui Datei vorhanden, und nicht innerhalb der .cpp Dateien.
TR hilft doch dabei nicht, oder täusche ich mich da völligst?

Code: Alles auswählen

<property name="text">
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">
<table border="0" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;" cellspacing="2" cellpadding="0">
<tr>
<td>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src="/usr/share/sidux-apt-qt4/icons/warning.png" /></p></td>
<td>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Arial'; font-size:11pt;">Warning: Because of dependencies there will be more packages (red marked) removed, than you have chosen.</span></p></td></tr></table></body></html>
</string>
</property>
Der Text ab Warning soll übersetzt werden.

Greetings
cobra

Verfasst: 23. April 2009 09:25
von pfid
Dann initialisier dein Label doch in der .cpp Datei, und nicht in der .ui Datei.

Verfasst: 23. April 2009 10:22
von franzf
Du hast es gar nicht versucht :(
Denn das geht ohne Probleme, selbst mit dem QUiLoader.
Einfach ui erstellen, Translation im pro eintragen, uswusf, wie halt im Hello tr() example angegeben, nur nicht über händisch angelegte Widgets, sondern den Designer. Für was glaubst du generiert uic die Methode "translateUi()"?

Nur ein "ü" im source-text machte mir Probleme, war zu faul das zu lösen...

Verfasst: 23. April 2009 11:51
von cobra
franzf hat geschrieben:Du hast es gar nicht versucht :(
Denn das geht ohne Probleme, selbst mit dem QUiLoader.
Einfach ui erstellen, Translation im pro eintragen, uswusf, wie halt im Hello tr() example angegeben, nur nicht über händisch angelegte Widgets, sondern den Designer. Für was glaubst du generiert uic die Methode "translateUi()"?

Nur ein "ü" im source-text machte mir Probleme, war zu faul das zu lösen...
Das ist so nicht ganz korrekt ;)
Ich habe es durchaus versucht, und für alles andere funktioniert die Übersetzung ja auch.
Nur eben nicht für diesen HTML Code.
Das mag aber auch daran liegen, das ich nicht weiß wie ich das tr() in der ui Datei anwenden soll, oder ob das auch überhaupt darin machbar ist.

Da ich noch Anfänger in Sachen QT4 bin, bitte ich um etwas Nachsicht.

Greetings
cobra

Verfasst: 23. April 2009 12:39
von franzf
1) Öffne Designer und bastel dir ein label rein
2) Im Label rechtsklick -> formatierbaren text ändern und unter Quelltext BITTE deinen sauber formatierten Text eingeben
3) qmake -project und danach das .pro wie in dem Hello tr()-example ändern.
4) lupdat mein_project_file.pro
5) linguist mein_transe.ts -> Übersetzen und releasen
6) Per QTranslator laden - wie im Hello tr()-Example

Wenn ich was vergessen haben sollte, darfst du es dann anmerken...

Verfasst: 23. April 2009 14:46
von cobra
Vielen Dank franzf
das war genau das was ich gesucht habe.
Hat bestens geklappt.
Danke für die kompetente Hilfe

Greetings
cobra