![]() |
Beschriftung von Buttons Labels zw. 2 Sprachen umschalten
Ich habe hier eine fertige in Delphi erstellte Oberfläche. Alle Buttons Labels und so weiter sind zur Zeit in Englisch beschriftet.
Nun möchte ich die Möglichkeit hinzufügen, per Schalter die Beschriftungen in eine andere Sprache umzuschalten. Der Nutzer soll also auswählen können ober meinetwegen alle Beschriftungen in Deutsch, Englisch, oder Spanisch haben möchte. Was wäre da eine elegante Möglichkeit? Wie würdet ihr das am besten lösen? Hat sowas vielleicht sogar schonmal jemand in ähnlicher Form gemacht? Danke schon im Vorraus :-D |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
ICh würde das per externer Sprachdatei machen. Beispielsweise hast du eine Englisch.txt, da stehen alle Captions untereinander drin. Dann lädst du diese Datei beim OnCreate in eine StringList und weist den Komponenten den jeweiligen String zu. Das hat den Vorteil dass man so gut wie jede Sprache einfügen kann, da man diese Textdatei einfach nur modifizieren muss.
Die ausgewählte Sprache könnte man in einer ini-Datei speichern, so dass die gewählte Sprache bei jedem Start geladen wird. |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Und wenn du nicht jeden Button einzeln setzen willst nutzt du die Tag-Eigenschaft. 0 für Eintrag 0 der Stringliste, Eintrag1 für den zweiten Eintrag etc.
Und dann einfach mit Componentcount alle Componenten durchgehen. |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Das ist ne gute Idee, hab ich noch nicht gewusst :thumb:
|
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Etwas flexibler und umfangreicher ist da die Komponente "TJvTranslator" :) ...
(Gibt natürlich 100 Wege ...) |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Brauch man für sowas eine extra Komponente?
Oder hat die irgendwelche besonderen Funktionen? :D |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Zitat:
|
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Hallo,
dafür kann man sehr gut gnu gettext verwenden. Ein bischen Einarbeitungsaufwand hat man dabei schon, aber man bekommt z.B. schon fertige Übersetzungen für das Delphi-Laufzeitsysten (Messageboxen usw.) die man mit einbinden kann und kostet nichts. Gruß |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
@ Deep Sea: Ach so, na dann ist es natürlich empfehlenswert (bei größeren Projekten). Wieder was gelernt ^^
|
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Suuuuper!! Ich danke euch schon mal für die tolle und vorallem sehr schnelle Hilfe :)
Ich versuche grade das JvTranslator Example zu compilieren, allerdings findet er Qforms und so bei mir nicht. Ich kann das auch nicht finden auf meinem Rechner. Wo gehört das hin? Ich habe Delphi 2007 Professional. Ist das in dieser Version nicht enthalten? |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
QForms ist für Kylix, sprich Linux. Kann es sein, das du da was falsch Installiert hast?! ^^
|
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
So habs trotzdem hinbekommen.
Ich mache es wie folgt: 1. JvTranslator aufs Form ziehen 2. Mit dem Tool DfmToXML generiert aus meinen *.dfm Dateien für JvTranslator lesbare XML Dateien. Mit diesem Tool kann man auch bestimmen welche Eigenschaften exportiert werden sollen. 3. Folgenden Code einbinden: JvTranslator1.Translate(deu.xml); deu.xml ist in diesem Fall das von DfmToXML erzeugte XML File. Danke an euch. Dass ich es so schnell hinbekomme ist großartig :hello: |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Weiss nicht, du meinst ob ich die falsche JVCL habe? Gibt es da denn speziell eine Variante für Linux?
|
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Zitat:
|
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Gibt noch ein paar Neuigkeiten:
Ich habe mich jetzt doch für das Tool gnu gettext in Verbindung mit dem Editor poEdit entschieden. Das Problem war das DfmToXML bei meinem kleinen Beispielprojekt ohne Probleme funktionierte, allerdings nicht bei eignetlichen Projekt, das es zu übersetzen galt. Es hat einfach nicht die entsprechende XML Datei aus den dfm erzeugt. Ausserdem finde ich bei gnu gettext gut, dass die Sprachdateien nicht in einem Klartextformat gespeichert werden. Auf diese Weise kann der Nutzer nicht darin herumpfuschen :) |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Zitat:
Bsp.: Das Programm soll in eine Sprache übersetzt werden, die keiner von der Firma kann. Als XML könnte man sie einfach per Mail an jemanden schicken der es kann, ohne das dieser Jemand spezielle Software bräuchte ... Außerdem, wenn ein Kunde schon so "schlau" ist, die XML Dateien zu finden und zu bearbeiten, wird er schon damit rechnen müssen das evtl. was schief geht. (Wir haben Kunden, die wissen nicht mal wie man den PC einschaltet) ... |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Da die Sprachdateien mit poEdit bearbeitet werden, finde ich deren Bearbeitung mindestens genaus einfach wie die Bearbeitung per XML. Und poEdit ist Freeware, und kann sich problemlos heruntergeladen werden.
Du hast sicher recht, daß die meisten Kunden sicher nicht drauf kommen werden, dass sich die verschiedenen Sprachen in simplen Sprachdateien verstecken. Möchte man allerdings Geld verdienen indem man dem Kunden die Anfertigung einer zusätzlichen Sprachversion anbietet, so sollte diese nicht so einfach zu vom Kunden zu bearbeiten sein, finde ich. |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Zitat:
Aber naja. Ich wünsch dir auf jeden Fall viel Glück :) |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
haste recht. Zumindest müsste man aber mal von mo und po Dateien gehört haben. :)
|
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Zitat:
(Sollte man wirklich von einem Kunden noch extra Geld verlangen, wenn der das Programm in seiner Muttersprache will? xD) |
Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
Das kommt ganz auf den Aufwand an. Aber um solche Fragen müssen wir uns hier zum Glück auch nicht kümmern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:34 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