Entwickler-Ecke

Open Source Units - UTransLang (Unit Translation Language)


Dezipaitor - Di 14.03.06 15:23
Titel: UTransLang (Unit Translation Language)
Moderiert von user profile iconTino: Von VCLTranslator - eine XML basierte Übersetzungsunit [http://www.delphi-forum.de/topic_VCLTranslator++eine+XML+basierte+Uebersetzungsunit_50595.html] abgetrennt.


Zu diesem Beitrag habe ich 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.


Dezipaitor - So 19.03.06 18:52

So neuste Version der Übersetzungsunit ist fertiggestellt.
Dabei habe ich auch eine neue Demo erstellt.


Viel Spass.


Delete - So 19.03.06 19:06

gibts das auch als ZIP?


Dezipaitor - So 19.03.06 22:11

ich hab den link entsprechend geändert.

Dazu habe ich die Möglichkeit eingebaut, die xml Daten verschlüsselt (nur mit Jedi)
einzulesen.
Man könnte natürlich auch statt Verschlüsselung eine Komprimierung verwenden.


Dezipaitor - Do 13.04.06 20:45

Gibt es irgendwelche Kritik?


Born-to-Frag - Do 13.04.06 21:12

:rofl:

Ich habe gerade mal die Testanwendung getestet :D und da ist mit in tem Tab "Resource in Aktion" beim Button "Dialog anzeigen" etwas aufgefallen: "Oke" und "Abbrüch" :rofl:

Ist das Absicht? :D


greetz


Dezipaitor - Do 13.04.06 21:19

ja, mir viel nichts besseres ein :)

Hier ist das erste Bild für einen Editor:
user defined image


k4hvd - Mo 28.08.06 18:25

Hi,

dein Unit ist sehr Interessant! Vorallem das automatische Generieren von XML Vorlagen aus Formen ist sehr hilfsreich.
Ich arbeite z.Z an einem großen Projekt und bin sehr daran interessiert dein Unit in meinem Projekt zu implantieren!

Doch einige Fragen hätte ich noch:

- Wie sieht es mit dem Lizenz aus? GPL, MPL oder doch €€€ ? ;)
- Hast du vielleicht schon eine neuere Version davon?
- Bekommt man auch möglicheweise dein Editor?
- Erlaubst du mögliche Änderungen/Anpassungen deines Units?

Schöne Grüße
Max