Autor Beitrag
Dezipaitor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: Di 14.03.06 15:23 
Moderiert von user profile iconTino: Von VCLTranslator - eine XML basierte Übersetzungsunit 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.
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Dezipaitor am Fr 24.03.06 23:53, insgesamt 4-mal bearbeitet
Dezipaitor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: So 19.03.06 18:52 
So neuste Version der Übersetzungsunit ist fertiggestellt.
Dabei habe ich auch eine neue Demo erstellt.


Viel Spass.
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 19.03.06 19:06 
gibts das auch als ZIP?
Dezipaitor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: Do 13.04.06 20:45 
Gibt es irgendwelche Kritik?
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: 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

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Dezipaitor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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