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?