Welche Technik wäre die geringste Anstrengung zu internationalisieren (mindestens mehrsprachigen) bestehenden Delphi-Anwendungen?

StackOverflow https://stackoverflow.com/questions/233560

Frage

Ich habe über 300 Anwendungen entwickelt, die ich unabhängig vom Betriebssystem mit mehrsprachigen Fähigkeiten zur Verfügung stellen will. Ich habe einen just-in-time Übersetzer geschrieben, aber das ist zu langsam in Anwendungen mit vielen Komponenten. Was würden Sie vorschlagen, ich tun?

War es hilfreich?

Lösung

Ich habe gehört, dass die TsiLang Komponenten schön sind, aber Ihr Blick auf eine Inplace-Lösung ...

Ich habe verwendet GNU gettext für Delphi , die genau tut das, was Sie wollen, lädt es die Übersetzungen aus einer Textdatei und ersetzt den Text in Ihren Komponenten. Es hat sogar einen pas / DFM Scanner automatisch die englische Übersetzung Datei zu erzeugen.

Es ist auch möglich, automatisch Ihren pascal Quellcode zu ändern, um die gettext Prozedur inplace Ihre statischen Strings zu injizieren. Wenn mich nicht alles täuscht es fügt nur ein Unterstrich als Funktion, um es, wie unten.

ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after

Ich muss sagen, es war 2 Jahre her, seit ich das letzte Mal diese Methode verwendet wird.

Eine Sache wird problematisch bleiben, werden die Delphi-Komponenten nicht aktiviert Unicode (D2009 behebt dieses), so dass, wenn Sie Sie noch eingeschränkt haben werden für andere Sprachen unterstützen nicht die Komponenten ändern.

Andere Tipps

Wir verwenden TsiLang und sind sehr zufrieden damit.

Eines der besten Punkte ist, dass Sie das Projekt mit einem Wörterbuch Vorübersetzung können (die Sie aus vorhandenen Übersetzungen gefüllt).

Eine gute kostenlose Lösung wäre GNU gettext für Delphi . Es hat einige Funktionen nicht in TsiLang - zum Beispiel, können Sie das Wissen über setzen, wie die Dinge zu zählen (verschiedene Ende für einen, zwei, vier, hundert und zwei, viele ...) in die Übersetzungsdatei, so dass Sie don‘ t haben, um jedes Programm zu lehren, dieses Zeug zu wissen.

Lizenz für die Delphi Teil sehr freizügig ist, aber ich bin nicht sicher, wie viel die mitgelieferte GNU Sachen Ihre Anwendung auswirken wird.

Multilizer . Es wird in Delphi gemacht und es kann Delphi Programme wie keine andere mit spezieller Unterstützung für VCL behandeln. Sie können sogar Ihre Bildschirme einfach für jede Sprache wiederholen. Mit Multilizer können Sie verschiedene Techniken verwenden, um Ihr Programm zu übersetzen und auszuführen.

Delphi 2009 hat eine integrierte Übersetzungsumgebung / Externen Translation-Manager hinzugefügt ITE und ETM sind jetzt sowohl für Delphi und C ++ Builder zur Verfügung.

In CodeGear Artikel: Was ist neu in Delphi und C ++ Builder 2009 , sie erklären, :

  

Die integrierte Übersetzungsumgebung   (ITE) ist ein Teil der IDE, die   vereinfacht Ihre Projekte zu lokalisieren.   ITE kann ein neues Projekt erstellen lokalisierte   aus einem bestehenden Projekt. ITE nicht   automatisch übersetzt Text, aber   bietet einen Dialog aller Auflistung   das muss lokalisiert werden und Felder   in dem die entsprechenden einzugeben   setzten Text. Sobald Sie eingegeben   der übersetzte Text und baute die   lokalisierte Projekt können Sie ein anderes Set   Sprache aktiv ist und ein Formular anzuzeigen in   die lokalisierte Text; Sie haben nicht zu   wechseln locales und das System neu starten.   Auf diese Weise können Sie ausführen   Lokalisierung ohne ein zu erfordern   lokalisierte System.

     

Der externe Translation-Manager (ETM)   Anwendung ist eine eigenständige, das funktioniert   mit DFM-Dateien und Textzeichenfolgen in der   Quellcode. Obwohl ETM nicht   ermöglicht es Ihnen, eine neue lokalisierte zu erstellen   Projekt, hat es einen Dialog zur Verfügung stellen   Auflistung lokalisierten Text und die   übersetzte Text, ähnlich wie bei ITE.

Dies ist, was ich plane, zuerst versuchen, sobald ich an dem Punkt bin, dass ich will mein Produkt internationalisieren.

Allerdings mir der einfache Teil ist, das Programm zu übersetzen. Der schwierige Teil ist die Hilfedatei zu übersetzen.

Ich würde sagen, GNU gettext für Delphi in Kombination mit TMS Unicode Component Pack- (bisher kostenlos unter TntWare) Unicode-Unterstützung in den Komponenten zu erhalten.

mit zu arbeiten, oder haben Übersetzer arbeiten mit, die Gettextdateien empfehle ich an der kostenlose Cross-Plattform suchen Poedit , die die .po-Dateien bearbeiten kann.

Just erwähnen cxLocalizer wenn Sie DexExpress Komponenten besitzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top