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 mehrere Sprachen benutzen - wie ? (https://www.delphipraxis.net/144826-mehrere-sprachen-benutzen-wie.html)

markus5766h 17. Dez 2009 15:44


mehrere Sprachen benutzen - wie ?
 
Hallo,

Für etwas größere Projekte suche ich eine Möglichkeit, die Projekte in mehreren Sprachen betreiben zu können.
Für ein etwas kleineres Programm (CAN-OPEN-Status-Abfrage und Initialisierung) bin ich folgendermaßen vorgegangen:
Ich hab' mir für jede Sprache eine Textdatei (mit Endung 'res') erstellt, je nach Spracheinstellung die entsprechende
Datei in eine TStringList geladen und dann die Buttons oder was auch immer - verwaltet durch arrays -
mit den entsprechenden Captions oder Hints versehen.
Für übersichtliche Sachen (so um die 50 Controls) ist das 'ne schnell gemachte Sache.

Was aber würdet Ihr für große Projekte (Maschinen-Positionierungs-Steuerungen über CAN-OPEN-Bus) machen -
ich denke, dass dabei so um die 600 Controls zusammenkommen ?
Die Funktionen ShowMessage und MessageDlg sind durch eigene Funktionen ersetzt, da auf diesen Forms auch
gleichzeitig Status- und Fehlermeldungen des CAN-OPEN-Bus angezeigt werden sollen.
Zu beachten sei hierbei noch, dass die Sprachdateien (Ressourcen) später jederzeit bearbeitbar sein sollen
(deswegen die Textdateien mit 'res'-Endung).

Bin für jede Idee dankbar.

himitsu 17. Dez 2009 16:03

Re: mehrere Sprachen benutzen - wie ?
 
Sind die .so-Dateien von GNU gettext nicht auch Textdateien?


Dort drinnen werden zwar die Sparch-Strings aus Konstanten geladen, aber woher das Array wirklich ist, ist egal.
http://www.delphipraxis.net/internal...t.php?t=164238

Die Technik wie die Strings in die Controls kommen, wird es "bald" in ähnlicher Weise auch als himXML-Komponente geben, wo es dann aus XML-Dateien geladen wird.

Sherlock 17. Dez 2009 16:18

Re: mehrere Sprachen benutzen - wie ?
 
Verwende Resourcen.

Die lassen sich dann mit diversen Tools internationalisieren. Hier mal ein Video von der Coderage dazu:
http://cc.embarcadero.com/javascript...x%3fid%3d27310

Sherlock

markus5766h 17. Dez 2009 16:34

Re: mehrere Sprachen benutzen - wie ?
 
Hallo,

danke erst mal für die Antworten, werd' mir beides mal genauer ansehen ...

Warp 17. Dez 2009 19:17

Re: mehrere Sprachen benutzen - wie ?
 
@Himitsu
Zitat:

Betreff: "Die Technik wie die Strings in die Controls kommen, wird es "bald" in ähnlicher Weise auch als himXML-Komponente geben, wo es dann aus XML-Dateien geladen wird.
Kannst Du schon etwas Näheres dazu sagen -
  • Was ist das Ziel der Komponente, was macht sie (soll sie evtl. automatisch tun) und was soll man als Anwender übernehmen?
  • Was wird die XML-Daten mit den Controls verknüpfen (Keyword, Name des Controls, etc.)?
  • Was soll/kann/darf man als Editor für diese XML-Daten verwenden (sozusagen als Übersetzungs-/Editier-IDE)?

Schöne Grüsse,

Warp

himitsu 19. Dez 2009 10:56

Re: mehrere Sprachen benutzen - wie ?
 
Zitat:

Zitat von Warp
@Himitsu
Zitat:

Betreff: "Die Technik wie die Strings in die Controls kommen, wird es "bald" in ähnlicher Weise auch als himXML-Komponente geben, wo es dann aus XML-Dateien geladen wird.
Kannst Du schon etwas Näheres dazu sagen -
  • Was ist das Ziel der Komponente, was macht sie (soll sie evtl. automatisch tun) und was soll man als Anwender übernehmen?
  • Was wird die XML-Daten mit den Controls verknüpfen (Keyword, Name des Controls, etc.)?
  • Was soll/kann/darf man als Editor für diese XML-Daten verwenden (sozusagen als Übersetzungs-/Editier-IDE)?

Schöne Grüsse,

Warp

Wie heißt es so schön?
Nichts Genaues weiß man nicht :roll:

Nja, in meiner Prioritätsliste isses nicht unbedingt ganz weit vorne angesiedelt und aktuell existieren nur ein paar Überlegungen und irgendwo (ich find es grad nicht) existiert auch schon ein kleiner Prototyp der Klasse/Komponente ... sind aber nur Überlegungen und eine erste Klassendefinition ohne zugehörige essentielle Quellcodes.

Im Prinzip gibt es Funktionen, welche man auf Forms loslassen kann,
bzw. auf alle Forms der Anwendung (welche bei Application registriert sind)
und wo über eine Tabelle via ElternFormular+Komponntenname (vorallem für's Elternformular wären auch Maskenzeichen erlaubt) ein Text zugewiesen werden kann.
Und dann gibt es noch Funktionen, wo z.B. über Platzhalter-Strings ersetzt werden kann.

Das sind so die Funktionen, welche ich für mich benötigen würde und ob es dann noch mehr gibt, hängt dann von der Nachfrage ab.

Aber zuerst wollte/müßte ich noch mindestens zwei andere Dinge fertigmachen.
Da es ja als Zusatzkomponente zum himXML geplant ist und ich da noch etwas im Umbau feststecke.


Einen "einfachen" Editor wird es dann schon geben und ansonsten könnte man eigentlich nehmen was man will.
XML ist ja von sich aus ein offenes Format und es dürfte recht einfach sein, dafür auch ein paar Konverter/Importer für andere Formate zu erstellen.

Warp 19. Dez 2009 17:13

Re: mehrere Sprachen benutzen - wie ?
 
@Himitsu
O.K. - Dann warte ich mal ab was da kommt.

Danke für die Info !

Gruss,

Warp

GerMan62 19. Dez 2009 19:56

Re: mehrere Sprachen benutzen - wie ?
 
Hallo,

wie wäre es mit:
Korzh Localizer
oder
Delphi Localizer

Warp 21. Dez 2009 19:10

Re: mehrere Sprachen benutzen - wie ?
 
Zitat:

wie wäre es mit:
Korzh Localizer
oder
Delphi Localizer
Korzh Localizer habe ich mir vor längerer Zeit schon mal angesehen. Für meinen Geschmack vielleicht etwas zu automatisiert und zu stark eingebunden in die IDE (aber ich habe damit noch nicht aktiv gearbeitet - kann mich also täuschen).

Delphi Localizer habe ich in meinem letzten Projekt benutzt. Ich arbeite gerne damit und finde es eine gelungene Lösung - bis auf einige Bugs (mit denen man allerdings noch leben kann) und einer fehlenden Export-/Import-Funktion um extern erstellte Übersetzungen im Localizer verarbeiten zu können (in CSV bspw). Leider ist nicht klar, ob es damit seitens Daniel weiter geht und welche IDE's aktiv unterstützt werden sollen. Es kommt auch auf direkte Nachfragen leider keine Antwort dazu von Daniel.

Gruss,

Warp


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr.

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