Hi,
der Thread ist zwar schon "etwas" älter, aber:
Der Fehler liegt in der gnugettext.pas. Und zwar die letzte Zeile von
Delphi-Quellcode:
function TGnuGettextInstance.LoadResString(
ResStringRec: PResStringRec): UnicodeString;
Warum steht da
Result:=ResourceStringGettext(Result);
?
ResourceStringGettext
ist eine global herumschlabbernde Routine welche immer auf die globale
DefaultInstance
eines
TGnuGettextInstance
geht, sich also nicht darum kümmert, welche Sprache ich vorgegeben habe. Ich hätte mir meine Instanzen
italian
und
spanish
also gleich sparen könnnen.
Damit es so funktioniert wie es soll müsste die obige Zeile so ersetzt werden:
Delphi-Quellcode:
Result:= //ResourceStringGettext(Result);
gettext(Result);
Wer kann mir das ausreden?
Ich
Ich habe gerade die Änderung von damals rückgängig gemacht, da damit AddDomainForResourceString keine Auswirkungen mehr hatte.
Allerdings habe ich aus der globalen Function ResourceStringGettext eine Methode von TGnuGettextInstance gemacht, so dass jetzt beides funktioniert: Eigene Instanzen von TGnuGettextInstance für spezielle Sprachen und AddDomainForResourceString.
twm