TsiLang Components Suite
HauptseiteÜbersichtBesonderheitenHerunterladenBestellenKontaktieren Sie unsForen

Erstellen von mehrsprachigen, vom Benutzer übersetzbaren Applikationen

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.

TsiLang Translation Wizard

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:

  1. Den Dateinamen in den FileName Wert von TsiLangDispatcher eintragen
  2. 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.
Creating the languages menu

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.

Bestes Globalisierungswerkzeug für Delphi
  Testimonials
"TsiLang is absolutely the best solution I found..." Maik Kappeler, Switzerland.

"Worked seamlessly and the auto translation is a great feature! Congratulations for a great product!" Eric Deghaye, Belgium.

More testimonials...
 
  Benutzerhandbuch
Lesen Sie das Benutzerhandbuch online oder laden Sie die detallierte Fassung herunter.
 
  Häufig gestellte Fragen
Lesen Sie die Häufig gestellte Fragen, um Antworten auf mögliche Fragen zu finden.
 
  Benutzerforum
Diskutieren Sie TsiLang-Themen mit anderen Benutzern.
 
  Siehe auch
Resource Builder- leistungsfähiger Editor für Ressourcendateien.
 
Technology Partner © 1999-2017 SiComponents® http://www.sicomponents.com
Delphi™, C++Builder™ und Kylix™ sind geschützte Marken der Borland Software Corp.