Da ich ein Freund von Programmen bin, welche Mehrsprachig sind, baue ich meist (für mich) zu statische Mehrsprachigkeitvisuallisierung ein.
Aber jetzt frage ich mich, wie man am Besten die mehrsprachigkeit Visuallisiert.
Okay ... Komplett vielleicht schwer umzusetzen, aber ich meine eigentlich die Komponenten (Edits, MainMenüs, Labels ...).
Ich habe es für mein Mainmenü so umgesetzt:
Delphi-Quellcode:
procedure TForm1.changeLanguage(fileName : string);
var
i, j : Integer;
ini : TIniFile;
begin
ini := TIniFile.Create(fileName);
try
for i := 0 to mmMenu.Items.Count - 1 do begin
mmMenu.Items[i].Caption := ini.ReadString(mmMenu.Items[i].Name, 'Name', mmMenu.Items[i].Caption);
for j := 0 to mmMenu.Items[i].Count - 1 do
mmMenu.Items[i].Items[j].Caption := ini.ReadString(mmMenu.Items[i].Name, mmMenu.Items[i].Items[j].Name, mmMenu.Items[i].Items[j].Caption);
end;
finally
ini.Free;
end;
end;
Aber was ist, wenn ich jetzt das für Edits realisieren will!
Weil Edits haben ja nicht die Eigenschaft "Caption" sondern "Text".
Wie würdet ihr das machen?
Ich hätte es so gemacht ("Grundriss"):
Ini-Datei (Sprachdatei)
Code:
[<Formularname>]
<KomponentenName>=<Übersetzung für die Komponente>
....
Form1.Component[i].<Text> := ini.ReadString(Form1.Name, Form1.Component[i].Name, '')