|
Das Problem beim Erstellen von mehrsprachigen, vom Benutzer übersetzbaren Applikationen lässt sich recht einfach lösen, der Benutzer kann sogar neue Sprachen selbst hinzufügen, ohne dass es Neukompilierung nötig wird. Natürlich wenn Sie TsiLang Components Suite dafür benutzen.
Lassen Sie uns Ihnen unsere Lösung für dieses Problem anhand eines Musterprojekts MastApp aus dem Delphi Unterordner Demos beschreiben.
Übersetzung des Projekts.
Wir werden den Übersetzungsprozess nicht ausführlich beschreiben, da wir davon ausgehen, dass Sie sich in diesem Teil von TsiLang Components Suite auskennen. Wir wollen nur die Komponenten nennen, die zum Übersetzen verwendet werden.
Wir benutzen TsiLangDispatcher, TsiLang und TsiLangLinked in allen anderen Projektformen.
Bild 1. Übersetzungsassistent
Stellen TsiLang und TsiLangDispatcher auf MastData Element, nachdem dieses automatisch erstellt und in allen anderen Projektformen benutzt wurde.
2. Erstellen der Übersetzungsdatei
Eine Übersetzungsdatei kann entweder nach dem Übersetzen, oder vor dem Übersetzen (nur aus englischen Termini) erstellt werden. Benutzen Sie Datei|Übersetzungen speichern/laden|Projekt speichern aus Menü des TsiLang Experten (TsiLang Experte ist in dem Delphi Toolmenü zu finden). Wir empfehlen, SIB-Dateien für Übersetzungen zu benutzen, da man mit den SIB-Dateien viel schneller, als mit den SIL-Dateien arbeiten kann. Sie können aber auch SIL-Dateien benutzen, in diesem Fall werden die Daten im ASCII-Format gespeichert und lassen sich mit einem einfachen Texteditor bearbeiten.
3. Benutzung der separaten Übersetzungsdateien und dynamische Aktualisierung der verfügbaren Sprachen.
Es gibt zwei Varianten:
- Den Dateinamen in den FileName Wert von TsiLangDispatcher eintragen
- Prüfen, ob sich die Übersetzungsdatei in dem im Code angegebenen Verzeichnis befindet, und diese manuell laden.
Im ersten Fall wird der Dispatcher automatisch prüfen, ob sich der in FileName angegebene Dateiname korrekt ist, und diesen automatisch in alle Projektformen eintragen. Für die zweite Variante können Sie den folgenden Mustercode benutzen:
procedure TMastData.DataModuleCreate(Sender: TObject);
var
sOurSibFile: string;
begin
// Eingabe des Dateinamens
sOurSibFile := ExtractFilePath(Application.ExeName) + 'TheNameOfYourFile.sib';
// Überprüfen des Vorhanden der Datei
if FileExists(sOurSibFile) then
begin
// Eingabe des Wertes
// automatisches Laden der früher erstellten Formen
siLangDispatcher1.FileName := sOurSibFile;
// Laden der Übersetzung in eine bestehende Form
siLangDispatcher1.LoadAllFromFile(sOurSibFile);
end;
end;
Wählen Sie eine Variante nach Ihrem Geschmack.
Um die verfügbaren Sprachen automatisch anzuzeigen:
- Fügen Sie ein neues höheres Menüelement zum Applikationshauptmenü hinzu.
Bild 2. Erstellen des Sprachenmenü
- Fügen Sie den Code hinzu, der die Menüelemente dynamisch an die verfügbaren Sprachen anpassen wird. Diesen Code können Sie in die OnShow Hauptform hinzufügen:
// Ändern der aktiven Sprache mit dem Klick in Menü
procedure TMainForm.LanguageMenuItemClick(Sender: TObject);
begin
MastData.siLangDispatcher1.ActiveLanguage := TMenuItem(Sender).Tag;
TMenuItem(Sender).Checked := True;
end;
procedure TMainForm.FormShow(Sender: TObject);
var
MenuItem: TMenuItem;
I: Integer;
begin
for I := 1 to MastData.siLangDispatcher1.NumOfLanguages do
begin
MenuItem := TMenuItem.Create(Self);
// Nennen
MenuItem.Caption := MastData.siLangDispatcher1.LangNames[I - 1];
// Eingabe des Tag Wertes für leichten Sprachenwechsel
MenuItem.Tag := I;
MenuItem.RadioItem := True;
// Die aktuelle Sprache
MenuItem.Checked := I = MastData.siLangDispatcher1.ActiveLanguage;
// Action-Handler
MenuItem.OnClick := LanguageMenuItemClick;
// Menüelement
Language1.Add(MenuItem);
end;
end;
Bitte merken! Der Code zum Aktualisieren und Anzeigen der Sprachen muss nach dem Laden der Übersetzungsdatei ausgeführt werden.
4. Fazit.
Starten Sie das Projekt und "fertig"! Die angeblich komplizierte Aufgabe ist mit Hilfe von TsiLang Components Suite in wenigen Minuten gelöst worden. Der Benutzer kann Ihre Applikation ohne Neukompilierung und ohne Ihre Hilfe übersetzen. Ihre Benutzer können dafür den kostenlosen SIL-Editor unter http://www.tsilang.de/download.html downloaden.
TsiLang Components Suite Starseite: http://www.tsilang.de.
Die neuste Version können Sie hier downloaden: http://www.tsilang.de/download.html.
|