![]() |
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 ![]() 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. |
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. |
AW: Anwendungen lokalisieren Mehrsprachiges Programm
das thema interessiert mich auch hast Du da kostenlose kostengünstige ideen?
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
gettext ist sehr verbreitet - wer es ein bisschen komfortabler möchte (meine Meinung), kann
![]() |
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 |
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Ich benutze Localizer - XE2 befindet sich gerade in der Beta.
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Ich vermute Lingus funktioniert auch mit XE2, ich selber benutze es mit XE.
|
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.
|
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 |
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Himitsu! Danke für den Tip ich werde es dann gleich ausprobieren!
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Das könnte auch eine gute Alternative sein:
![]() |
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Zitat:
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Liste der Anhänge anzeigen (Anzahl: 1)
Anbei habe ich mein Übersetzungsprogram beigehängt. Leider hänge ich noch immer beim dynamischen Wechseln der Sprache. Leider konnte ich diese TLang.. oder TTrans... Komponente ausmachen.
Bin für jeden Tip offen, vorrausgesetzt diese sind in Delphi XE2 standardmässig(also mit den Standard-Werkzeugen der IDE) umsetzbar. |
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Zitat:
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
TSiLang ist für mich immer noch allererste Wahl.
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Zitat:
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Zitat:
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Ich finde auch die Forderung nach einer On-The-Fly Umschaltung etwas übertrieben. Unser Programme bieten das zwar, wird aber so gut wie nie genutzt. Ein Türke will kein Bulgarisches Programm sehen und der Ungar kein Tschechisches. Einzige Ausnahme ist bei Schulungen, wenn man auf Kunden-PCy arbeiten muss. Dann hilft das Umschalten, falls man einen Button oder Menüpunkt nicht mehr findet, oder die alphabetisch sortierten Konfigurationseinträge einer Combobox nicht identifizieren kann.
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Wie gesagt, die Möglichkeiten in XE2 sind auch zur Umschaltung im Betrieb vorgesehn (auch wenn das Umschalten für einen Button, ein Label und eine Groupbox mit 3 Sekunden etwas übertreiben waren, bei meinem Test)
Aber ich finde nichts verwerflich daran sich auch mal nur auf Boardmittel zu beschränken, vorallem für weitergegebene Komponenten ist es doch schön, wenn sie keine großen Abhängigkeiten vorweisen können. Und auch für längerlebende Kleinprojekte versuche ich möglichst auf Fremdkomponenten zu versichten. |
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Eine Möglichkeit findest Du unter Samples\Delphi\VCL\RichEdit.
|
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Zitat:
Epilog, damit man on-the-run die Sprache wechseln kann muss man mit dem THandler arbeiten. Wollte ich mir aber nicht antun. Danke an alle für Ihre Mithilfe! |
AW: Anwendungen lokalisieren Mehrsprachiges Programm
Hi,
anbei noch zwei Links zu Lokalisierungskompos für Delphi. Bin da vor einiger Zeit drauf gestoßen, habe Sie aber nie getestet. Die eine steht glaube ich komplett zur freien Verfügung, die andere ist glaube ich frei zur persönlichen Nutzung.... Kannst sie dir bei Bedarf ja mal anschauen.... ![]() ![]() Gruß, Steku |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz