Ich habe eine
Unit erstellt, die aus einer
XML Datei Texte eines Programms ändert.
Die Klasse trägt den Namen TLangTranslate.
Die
Unit wurde unter Delphi 7 getestet. Unter D5 funktioniert diese nicht (wegen
XML).
D6 und andere Versionen kann/konnte ich nicht testen.
Was kann/bietet TLangTranslate ?
1. TLangTranslate verwendet MS
XML (
ActiveX) und kann daher die
XML gegen eine DTD-Datei validiert werden.
2. TLangTranslate verwendet UTF-8.
3. TLangTranslate kann Übersetzungs-
XML-Dateien über eine
XML Datei, über ein Stream und damit auch über eine
Resource geladen werden (siehe Demo).
4. Spezielle Informationentags, wie Version, Autor usw sind bereits in der
XML enthalten.
5. Es kann in Delphi Formulare automatisch Texte ersetzen.
Dazu werden definierte Eigenschaften automatisch übersetzt.
6. Beliebige Texte können über eine Übersetzungsfunktion (Translaten() bzw. _T() )
7. Dialogboxfunktionen (ShowMessage, MessageBox ...) sind für die Übersetzung bereitgestellt
8. Resourcenstrings (definiert z.B. in consts.pas) können genauso übersetzt werden.
Eine Änderung in der
XML Datei reicht dabei. Unbekannte Resourcenstrings werden über ihre ID übersetzt.
Der ID kann man in der
Unit UResStrings.pas einen Namen zuweisen.
9. Commondialog (TOpenDialog, TPrintDialog...) können übersetzt werden.
10.
XML Dateien können komprimiert oder verschlüsselt werden (mit JCL)
11. Ein Großteil der Aktionen können über Nachrichten beeinflusst werden.
12. Die aktuelle Sprache für das Projekt kann leicht geändert werden (siehe Demo)
13. Windowssprache und Informationen dazu können ausgelesen werden.
14. Für Delphi Formulare, Resourcenstrings, Commondialoge und Übersetzungstexte (mit Translate bzw _T) können
XML Vorlagen erstellt werden.
15. Man muss keine Instanz der Klasse erstellen. Das Einbinden der
Unit reicht, und man kann auf die Instanz GlobalTranslation bzw. _GT direkt zugreifen.
16. Ich habe die
Unit mit FastMM4 und MemCheck die ganze Zeit auf Speicherlöcher überprüft.
17. Viele Kommentare auf Englisch
Was kann TLangTranslate nicht?
1. Texte zum Übersetzen aus den Quelltexten extrahieren für die Weiterverarbeitung
2. Texte übersetzen
3. keine Oberfläche, um die
XML Datei zu übersetzen
4. die ganze Arbeit übernehmen
5. ... und noch vieles mehr
Eine einfache Demonstrationsprojekt habe ich zum Studium beigefügt.
Die
Unit ist in der Version 1.4 zum Herunterladen freigeben.