Announcement

Collapse
No announcement yet.

Übersetzung mit XML (Unit)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Übersetzung mit XML (Unit)

    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.

    <br>
    Was kann/bietet TLangTranslate ?<br>

    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<br><br>

    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
    <br><br>
    Eine einfache Demonstrationsprojekt habe ich zum Studium beigefügt.
    <br><br>
    <a href=http://wimmer.teamchris.info/TransLang.zip>Die Unit ist in der Version 1.4 zum Herunterladen freigeben.</a>(der Upload hier funktioniert für mich nicht)


  • #2
    Auch eine Unit MultilangTranslator

    Die Unit erinnert mich an unser Framework:

    1. Separation der Strings zur Designzeit
    2. Alle Sprachen lassen sich in eine Datei linken
    3. Sprachwechsel zur Laufzeit möglich
    4. Keine Lizenz, Komponente oder zusätzliche Tools nötig
    5. Einsatz in Delphi, Lazarus und Kylix (siehe laz_multilang.zip)
    6. Schnell und einfach zum Verteilen
    7. Verständliches Ändern oder Korrigieren der Texte (Stringtable)
    8. Erweiterbar durch Stringliterals oder zusätzliche Controls
    9. Ereignis OnLanguageChanged() implementiert
    10. Ressourcen-DLL zur Laufzeit möglich

    Mehr davon auf
    http://www.softwareschule.ch/downloa...tilanguage.pdf

    Comment

    Working...
    X