So wie ich es verstanden habe:
Der Unterschied zwischen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
welcomeMessage = 'Hallo Welt';
begin
ShowMessage(welcomeMessage);
end;
und
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
resourcestring
welcomeMessage = 'Hallo Welt';
begin
ShowMessage(welcomeMessage);
end;
ist einzig und allein wie der Compiler das 'Hallo Welt' in die .exe-Datei einbettet. Du kannst z.B. den Text mit einem Editor nachträglich anpassen ohne die .exe neu zu kompilieren:
Die Geschichte mit
DLL-Dateien ist, soweit ich das mal gesehen habe, dass man die Resourcen-Strings in eine externe
DLL-Datei auslagert und die Sprache umstellt indem man die
DLL tauscht.
Was ist daran jetzt besser als z.B. als an einer Textdatei? Habe ich auch nicht verstanden.
Was die
resourcestring
-Geschichte so toll macht sind Tools wie z.B.
dxGetText welche deine Delphi-Projekte nach Resourcestrings durchsuchen, in .po-Dateien extrahieren und dir eine Methode anbieten wie du in der Delphi-Runtime die Sprachauflösung umschalten kannst sodass du nur einmal sagst
useLanguage('EN')
und in dem resourceString plötzlich
Bonjour le monde drinsteht.
Hört sich wahrscheinlich immer noch völlig abstrakt an. Probier einfach mal dxGetText aus. Da kümmert man sich um den ganzen Kram nicht mehr.