Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Anwendungen lokalisieren Mehrsprachiges Programm (https://www.delphipraxis.net/163654-anwendungen-lokalisieren-mehrsprachiges-programm.html)

Gintama 9. Okt 2011 11:34

Anwendungen lokalisieren Mehrsprachiges Programm
 
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.

Union 9. Okt 2011 11:51

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
Hallo und Herzlich willkommen in der DP.
Eine einfache Lösung gibt es da nicht. Du solltest nach externen Tools suchen, die Dir ein On-The-Fly Umschalten ermöglichen.

delphinia 9. Okt 2011 12:04

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
das thema interessiert mich auch hast Du da kostenlose kostengünstige ideen?

wicht 9. Okt 2011 12:09

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
gettext ist sehr verbreitet - wer es ein bisschen komfortabler möchte (meine Meinung), kann Lingus ausprobieren. Alles was ich so gemacht habe, habe ich damit übersetzt.

delphinia 9. Okt 2011 12:12

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
gettext ist grauenvoll! die tausend ordner im Ordner - also das System wie die Sprachen verwaltet werden isst einfach unwirtschaftlich!


Lingus schaue ich mir gleich mal an - ist das auch für XE2

Union 9. Okt 2011 12:13

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
Ich benutze Localizer - XE2 befindet sich gerade in der Beta.

wicht 9. Okt 2011 12:16

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
Ich vermute Lingus funktioniert auch mit XE2, ich selber benutze es mit XE.

himitsu 9. Okt 2011 12:34

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
Da gibt es im XE2 irgendsoein TLang...-Ding oder TTranslate..-Teil (meine Trial ist grade abgelaufen, kann nimmer nachsehn), das kannst du auf die Form ziehen und die GUI-Sprache auch zur Laufzeit umschalten, bzw. du kannst dort für Komponenen eine Übersetzung angeben, welche man zur Laufzeit neu laden/umschalten kann.

Gintama 9. Okt 2011 12:48

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
Danke für die zahlreichen Antwort. Ich werde eine sauberes Projekt in 3 Stunden hier reinhängen. Momentan muss ich die meine IDE neuinstallieren, hab durchs ganze ausprobieren mir die anderne Projekte versaut.

Mit gnugettext habe ich es schon geschafft gehabt eine funktionierente Überseztung zu machen, jedoch möchte ich beim Standard bleiben der in der IDE vorgegen ist. Erwähnenswert dazu ist, dass man die richtige Quelltext-Datei verwendet (Eine die zu XE2 kompatible ist). Die ursprüngliche funktioniert nur bei Kilix und für andere Delphi Versionen gibt es auch eigene.

Ich bin leider Anfänger in Delphi und ein paar Konzepte sind mir nicht klar, deshalb denke ich, dass die Lösung ganz einfach ist. Wie Bsp. Application.Reinitalize oder nochmaliges linken der Resource-Datei. Oder das angeben in der {$R.dfm} mit den Suchpfad in den jeweiligen Sprach dfm. Oder bei den Projektoptionen den Pfad anführen.

Leider bin ich momentan wegen IDE Problemen selber lahmgelegt. Darum bitte ich um 2-3 Std geduld bis ich meine Beispielprojekt reinhänge.

Danke für eure Antworten

Gintama 9. Okt 2011 12:50

AW: Anwendungen lokalisieren Mehrsprachiges Programm
 
Himitsu! Danke für den Tip ich werde es dann gleich ausprobieren!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz