Einzelnen Beitrag anzeigen

Gintama

Registriert seit: 2. Okt 2011
Ort: Wien
7 Beiträge
 
Delphi XE2 Architect
 
#1

Anwendungen lokalisieren Mehrsprachiges Programm

  Alt 9. Okt 2011, 12:34
Hi Leute!

Ich habe eine einfaches VCL-Formular erstellt welches die Sprache auf Knopfdruck ändern soll.

Ich habe mich hierzu an die Anleitung von http://docwiki.embarcadero.com/RADSt...n_lokalisieren gehalten.

Kurz zusammengefasst waren die Arbeitsschritte hierzu:
- VLC-Form fertig erstellen
- Über XE2-Studio Menü Projekt->Sprache->Sprache hinzufügen
Dabei werden für jede Sprache neue Unterordner im Projekt angelegt mit den jeweiligen Sprachen, wo sich die jeweilige *.dfm befindet.
Wenn man diese über Doppelklick auswählt erscheint dann der dementsprechende Übersetzungseditor wo schon die bestehenden Strings und Komponent.Caption generiert sind und nur über der Übersetzungstext einzufügen ist.
- Neues Wörterbuch über Ansicht->Translation Manager anlegen und vom Übersetzungseditor die Übersetzungen übernehmen.
- Prozedure die den Registry-Schlüssel für die Anwendung ändert, um festzulegen mit welcher Sprache die Anwendung geladen wird.
- Übersetzungsarbeiten fertig, erstellen der Ressourcen-DLL über Projekt->Neu->Weitere und auswahl Ressourcen-DLL-Experte, beim Wizard die Resourcendatein angeführt.

Leider ist das Ergebnis nicht wie gewünscht. Die Sprache wird zwar umgestellt, aber man muss dazu das Programm beenden und neu starten.

Ich will aber, dass es noch in der selben Instance geändert oder automatisch eine korregierte Instance erstellt wird, wobei die 2 Variante eher eine Notlösung darstellt.

Meine Lösungsansätze hierfür, die nicht geklappt haben, waren:
1) Form-Prozeduren/Funktionen wie BSP refresh, update, updateUIControls, reinitalizecomponent usw.
2) Über exclude/include die Resourcendatei dynamische zu linken
3) Über die ShellAPI das Programm selber aufzurufen und die alte Application Terminieren.

Da ich seit kurzen mich mit Delphi Pascal beschäfftige, gehe ich davon aus, dass die Antwort ganz leicht ist. Deshalb bitte ich euch Unterstützung.

Danke im voraus und ich hoffe meine Schilderung hilft euch, falls Ihr selber mal vor diesem Problem stehts.
  Mit Zitat antworten Zitat