Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

gnugettext: keine Übersetzung falls vorher caption = ''

  Alt 12. Jun 2007, 14: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?
  Mit Zitat antworten Zitat