Wir vergeben bei den Controls (z.B. ein Label) die Tag-Eigenschaft. Die Tag-Nummer korrespondiert mit den Einträgen in der Inidatei.
Nun werden im FormShow bzw. FormCreate eines jeden Formulars (wir haben ein Basis-Formular, von dem die eigentlichen Formulare abgeleitet sind) die Sprach-Strings zugewiesen. Das macht eine Methode, die alle Controls (über ControlCount / Controls[i]) des Formulars durchläuft. Hier wird auf den Typ des Controls geprüft mit z.B.
Delphi-Quellcode:
if Controls[i] is TLabel then
(Controls[i] as TLabel).Caption := s;
Für mich hat sich das Trennen der Sprachen in je eine eigene Inidatei bewährt, z.B. IniGer.txt, IniEng.txt etc.
Roderich