Ich hab das wie folgt gelöst:
- jede Sprache hat eine eigene INI Datei
- diese Datei hat folgenden Aufbau:
Zitat:
[Language File Information]
Creator_Name=Thomas
LanguageID=$00000405
[Main Window]
Button_Close=Close
Button_Options_CheckNow=Check now
... u.s.w. ...
- über das Auslesen alle Languagedateien aus dem Verzeichnis und der LanguageID kann ich ganz leicht ne Combobox füllen lassen mit allen vorhandenen Sprachen
- dann gibt's noch in jeder Form eine Funktion, die beim Erstellen der Form und beim Ändern der Spracheinstellungen aufgerufen wird - diese Function sieht so aus bei mir
Delphi-Quellcode:
procedure TfrmOnlineUpdate.LoadLocalizedStrings;
const cLngFormSection = 'OnlineUpdate Window';
begin
Caption := GetLocalizedString(cLngFormSection, 'Caption', Caption);
btnClose.Caption := GetLocalizedString(cLngFormSection, 'Button_Close', btnClose.Caption);
Label1.Caption := GetLocalizedString(cLngFormSection, 'Label_YourVersion', Label1.Caption);
Label2.Caption := GetLocalizedString(cLngFormSection, 'Label_CurrentVersion', Label2.Caption);
Label3.Caption := GetLocalizedString(cLngFormSection, 'Label_UpdateDate', Label3.Caption);
Label4.Caption := GetLocalizedString(cLngFormSection, 'Label_LastVersionNews', Label4.Caption);
Label5.Caption := GetLocalizedString(cLngFormSection, 'Label_ClickHereToDownload', Label5.Caption);
fUnknown := GetLocalizedString(cLngFormSection, 'Text_Unknown', fUnknown);
end;
(Aufbau von GetLocalizedString: 1. Parameter = Section; 2. Parameter = Ident; 3. Parameter = Standardwert)
- GetLocalizedString geht nun in die aktuell ausgewählte Sprachdatei und liest mit Hilfe der INI Functionen den entsprechenden Text aus der Sprachdatei aus - falls dieser nicht vorhanden ist wird dieser Eintrag in der Sprachdatei mit dem Standardwert ergänzt
Das ist eigentlich auch schon alles. Aus dem oben genannten solltest du eigentlich ohne Probleme deinen eigenen Code ableiten/erstellen können.
Gruss
Thomas