Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Beschriftung von Buttons Labels zw. 2 Sprachen umschalten (https://www.delphipraxis.net/102502-beschriftung-von-buttons-labels-zw-2-sprachen-umschalten.html)

Oracle 30. Okt 2007 07:54


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

Aurelius 30. Okt 2007 08:01

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.

SirThornberry 30. Okt 2007 08:06

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.

Aurelius 30. Okt 2007 08:08

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Das ist ne gute Idee, hab ich noch nicht gewusst :thumb:

Deep-Sea 30. Okt 2007 08:15

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Etwas flexibler und umfangreicher ist da die Komponente "TJvTranslator" :) ...
(Gibt natürlich 100 Wege ...)

Aurelius 30. Okt 2007 08:24

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Brauch man für sowas eine extra Komponente?

Oder hat die irgendwelche besonderen Funktionen? :D

Deep-Sea 30. Okt 2007 08:30

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Zitat:

Zitat von xX0815Xx
Brauch man für sowas eine extra Komponente?

Oder hat die irgendwelche besonderen Funktionen? :D

Das kommt drauf an, wie umfangreich dein Programm ist und wie viel Arbeit du später haben bzw. nicht haben willst. TJvTranslator arbeitet mit XML-Dateien die eig. die gleichen Daten enthalten wie die DFM-Datei von Delphi selbst. Somit kann man nicht nur die Beschriftung, sondern auch die Breite, Position, Schriftgröße etc. ändern. Und für ein großes Programm wäre die Lösung "StringList + Tag missbrauchen" imho seeehr wacklig und nicht zu empfehlen ...

Neumann 30. Okt 2007 08:36

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ß

Aurelius 30. Okt 2007 08:44

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 ^^

Oracle 30. Okt 2007 12:31

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?

Deep-Sea 30. Okt 2007 12:36

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?! ^^

Oracle 30. Okt 2007 12:43

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:

Oracle 30. Okt 2007 13:15

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?

Deep-Sea 30. Okt 2007 13:30

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Zitat:

Zitat von Oracle
Weiss nicht, du meinst ob ich die falsche JVCL habe? Gibt es da denn speziell eine Variante für Linux?

Nein, es gibt nur eine. Für was es kompiliert wird, wird anhand von Kompilerschaltern festgelegt ... (wenn ich mich nicht ganz irre) ...

Oracle 2. Nov 2007 09:59

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 :)

Deep-Sea 2. Nov 2007 10:06

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Zitat:

Zitat von Oracle
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 :)

Andere würde dies als großen Vorteil ansehen.
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) ...

Oracle 5. Nov 2007 11:51

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.

Deep-Sea 5. Nov 2007 12:04

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Zitat:

Zitat von Oracle
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.

Dann wäre aber auch deine Methode zu leicht "knackbar" :wink: ...
Aber naja. Ich wünsch dir auf jeden Fall viel Glück :)

Oracle 5. Nov 2007 12:08

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. :)

Deep-Sea 5. Nov 2007 12:10

Re: Beschriftung von Buttons Labels zw. 2 Sprachen umschalte
 
Zitat:

Zitat von Oracle
haste recht. Zumindest müsste man aber mal von mo und po Dateien gehört haben. :)

Wofür gibt es das Internet *gg*
(Sollte man wirklich von einem Kunden noch extra Geld verlangen, wenn der das Programm in seiner Muttersprache will? xD)

Oracle 5. Nov 2007 12:22

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