Thema: Delphi GNUGetText Retranslate

Einzelnen Beitrag anzeigen

Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: GNUGetText Retranslate

  Alt 8. Jan 2009, 16:31
Zitat von Alien_F:
Also theoretisch ist dein Ansatz korrekt. Ich hab´s exakt so in meinem Projekt und bei geht´s. Sowohl diverse Caption-Properties als auch resourcestrings, die ich in einer Extra-Unit dafür deklariert habe, werden übersetzt. Ist auch mit den Language-Files alles kokrrekt? ( Unterpfad Locale\en\LC_MESSAGES\default.mo )?
Jepp die Pfade zu den Language files sind korrekt, etwas seltsames taucht bei mir auf:
Ich hab mal eine Virable Declariert Typ Boolean im FormOnCreate hab ich nichts eingestellt also keine UseLanguage oder TranslateComponent nur folgendes: firstTranslation := true;

Dann bei der TImageOnlick:

Delphi-Quellcode:
  UseLanguage('en');
  if (firstTranslation) = false then
  RetranslateComponent(self)
  else
    translateComponent(self);
Dann switched er auf Englisch, wenn ich aber nun auf eine andere Sprache will also erneuter wechsel kommt folgendes:

"This application tried to switch the language, but in an incorrect way. The programmer needs to replace a call to TranslateComponent with a call to RetranslateComponent(). The programmer should see the changelog of gnugettext.pas for more information."

So nun bin ich völlig verwirrt, weil wenn ich im FormOnCreate nun folgendes machen würde:

Delphi-Quellcode:
  UseLanguage('de');
  TranslateComponent(Self);
  firstTranslation := False;
Und dann halt im TImage:
Delphi-Quellcode:
  UseLanguage('en');
  if (firstTranslation) = false then
  RetranslateComponent(self)
  else
    translateComponent(self);
Passiert gar nix nicht mal eine Fehlermeldung die Sprache bleibt wie sie in der FormCreate gesetzt wurde !

Ich hab mir gerade mal per ShowMessage unter dem TImageClick die CurrentLanguage anzeigen lassen, diese wird korrekt geswitched z.B. für Englisch = en also scheint das Problem ggf. am ReTranslateComponent zu liegen...

Vielleicht nen Fehler in der GnuGetText für D2009?
  Mit Zitat antworten Zitat