Delphi-PRAXiS
Seite 1 von 3  1 23      

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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 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