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.