Internationalisierung von Anwendungen mit BCB
-
Hi zusammen,
unterstützt eigentlich der BCB (ich habe "nur" die Version 4) die Internationalisierung der Anwendungen - also der Benutzer wählt eine Sprache aus, und entsprechend werden alle Textstrings (Menüs, Buttons, Dialoge, Meldungen) automatisch (zur Laufzeit) ersetzt? Oder müßte man das alles irgendwie "zu Fuß" machen?
Gruß,
Stefan
-
Hi,
Seit mindestens BCB3 Standard ist unter Examples->Apps->RichEdit ein Beispiel dazu.
Ebenso nach Betätigen der F1 spuckt die Hilfe etwas zu Internationalisierung aus.mfg
Peter
-
Teils, teils.
Wenn du ITE oder ETM benutzt, gibt es diese Möglichkeit für alle Strings in Ressourcendateien - darunter fallen beispielsweise .dfm-Dateien. Für das Übersetzen von Strings im Quelltext mußt du allerdings selbst Hand anlegen. Bei der Benutzung von ITE/ETM wäre die einfachste Option vermutlich, ein Delphi-Unit wie das folgende anzulegen, um vom resourcestring-Keyword Gebrauch zu machen:unit MyResourceStrings; interface resourcestring SMessage = 'Hello world!'; implementation end.
Der Delphi-Compiler generiert automatisch eine Headerdatei, so daß der String in C++Builder nutzbar ist.
Ein vollkommen anderer Ansatz wird von dxgettext verfolgt. Auch gibt es diverse kommerzielle Lösungen.
-
Hi,
danke für die bisherigen Tips.
Ich denke, ich werde zunächst mal eine eigene Lösung verwenden, bei der die sprachabhängigen Strings in einer INI-Datei definiert sind. Das hat auch den Vorteil, daß ein Anwender weitere Sprachen hinzufügen kann, ohne das Programm neu kompilieren zu müssen.
Ich habe mal ein kleines Beispiel-Projekt dafür erstellt (falls es jemanden interessiert):
Internationalisierung.zip (6 KB)
Gruß,
Stefan
-
bcbfan schrieb:
Ich denke, ich werde zunächst mal eine eigene Lösung verwenden, bei der die sprachabhängigen Strings in einer INI-Datei definiert sind. Das hat auch den Vorteil, daß ein Anwender weitere Sprachen hinzufügen kann, ohne das Programm neu kompilieren zu müssen.
Insbesondere hat es aber den Nachteil, daß du jede lokalisierbare Eigenschaft deines Formulars im Code zuweisen mußt. Bei Projekten, die den Umfang einer simplen Demonstration überschreiten, kann das eine Menge werden.
Den Vorteil der freien Erweiterbarkeit hast du auch bei dxgettext.
-
audacia schrieb:
Insbesondere hat es aber den Nachteil, daß du jede lokalisierbare Eigenschaft deines Formulars im Code zuweisen mußt.
Ja, das stimmt allerdings.
Ich werde es mir nachher nochmal genauer ansehen... (habe das Konzept von dxgettext auch noch nicht so ganz verstanden).
-
Das Thema Internationalisierung füllt ganze Buchbände. Aber vielleicht nur soviel, alle bisher geschilderten Lösungsansätze lassen unter der genannten Entwicklunsgebung nur westeuropäische Sprachen zu. Wenn Du unter Internationaliserung allerdings auch die Einbindung osteuropäische (z.B. Russisch) oder asiatische Sprachen verstehst, wirst Du damit keinen Erfolg haben. Da hilft nur der Umstieg auf RAD Studio 2009 (hat komplette Unicode Unterstützung oder Du setzt Bibliotheken ein (Bsp.LMDTools) die Unicode unterstützen.
Beste Grüße
Gerhard
-
Hi Gerhard,
nein, so weit wollte ich es nicht gleich treiben. Es ging mir tatsächlich nur um Sprachen, die sich im "normalen" Windows-Zeichensatz und "von links nach rechts geschrieben" darstellen lassen. Alles Andere würde sich in meinem Fall nicht lohnen; da wäre der Aufwand zu groß.
Gruß,
Stefan
-
Hallo Stefan,
ich persönlich verwende seit Jahren die TsiLang Komponenten http://www.sicomponents.com/index.html.
Für den reinen privaten Bereich sicherlich nicht ganz billig. Falls Du keine freien Tools dafür findest, bleibt Dir meiner Meinung nach nur der Weg über die Ressourcen DateiBeste Grüße
Gerhard
-
GABehnke schrieb:
alle bisher geschilderten Lösungsansätze lassen unter der genannten Entwicklunsgebung nur westeuropäische Sprachen zu
Das trifft auf ITE/ETM vor C++Builder 2009 zu, aber dxgettext kann mit Unicode-Strings umgehen. (Natürlich benötigt man, um diese in einer VCL-Anwendung auch darstellen zu können, Komponenten wie die von dir genannte LMD-Suite, aber mit dem Internationalisierungstool hat das zunächst nichts zu tun.)
GABehnke schrieb:
Falls Du keine freien Tools dafür findest
dxgettext.
Edit: Typographie