gnugettext: keine Übersetzung falls vorher caption = ''
12. Jun 2007, 15:01
Hallo mal wieder!
Die Komponenten wollen sich nicht so recht nachträglich übersetzen lassen wenn übersetzbare Felder vor TranslateComponent leer sind.
Ich benutze Delphi 2007 und die aktuellste Version von dxgettext. Die .po Dateien sind alle da wo sie hingehören und wurden auch alle komplett und ordnungsgemäß Übersetzt und nach .mo kompiliert.
Ich habe eine TComponentlist, in der alle zu Übersetzenden Komponenten drinnen sind, die in eine for-i-Schleife mit gnugettext.RetranslateComponent(FComponentList[i]); erneut übersetzt.
Mit einem Trick funktioniert das auch, aber den will ich nicht verwenden, da der Aufwand dann fast wieder in keinem Nutzen steht.
Problem: Wenn die Komponenten mit gnugettext.RetranslateComponent(Self); in ihrem constructor Create übersetzt werden bevor alle übersetzbaren Eigenschaften wie Caption, Items, Strings (ja nach Komponente), funktioniert die Übersetzung nicht.
Funktioniert NICHT:
inherited Create --> gnugettext.TranslateComponent(Self);
--> Caption := 'Test' --> ... --> gnugettext.RetranslateComponent(Self);
Funktioniert:
inherited Create --> Caption := 'Test'
--> gnugettext.TranslateComponent(Self); --> ... --> gnugettext.RetranslateComponent(Self);
- Ich kann bei meinen eigenen Komponenten keinen "Standardwert" setzen und die dann mit gnugettext.TranslateComponent(Self) übersetzen, weil sonst immer bei RetranslateComponent(Self) die Übersetzung des Standardwertes kommt, und nicht die, die ich eigentlich in Caption drinnen haben will.
Achja: alle Komponenten werden zur Laufzeit erzeugt.
Wie macht Ihr das mit gnugettext? Habt Ihr auch das Problem oder kennt es zumindest?
|