Übersetzung eines QLabels mit HTML Code Inhalt

Alles rund um die Programmierung mit Qt
Antworten
cobra
Beiträge: 4
Registriert: 13. November 2008 09:08

Übersetzung eines QLabels mit HTML Code Inhalt

Beitrag 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.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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!
cobra
Beiträge: 4
Registriert: 13. November 2008 09:08

Beitrag 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
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Dann initialisier dein Label doch in der .cpp Datei, und nicht in der .ui Datei.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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...
cobra
Beiträge: 4
Registriert: 13. November 2008 09:08

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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...
cobra
Beiträge: 4
Registriert: 13. November 2008 09:08

Beitrag von cobra »

Vielen Dank franzf
das war genau das was ich gesucht habe.
Hat bestens geklappt.
Danke für die kompetente Hilfe

Greetings
cobra
Antworten