Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#1

Übersetzen von Programmen in verschiedene Sprachen mit XML

  Alt 15. Mär 2006, 20:56
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.
Angehängte Dateien
Dateityp: zip translang_409.zip (456,3 KB, 61x aufgerufen)
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat