Ich denke, das könnte für den einen oder anderen auch interessant sein.
Übersetzung des ursprünglichen Posts von
https://en.delphipraxis.net/topic/18...ager-released/
Better Translation Manager (Besserer Übersetzungsmanager)
Download Source Code:
https://bitbucket.org/anders_melande...lation-manager
Download EXE:
http://melander.dk/download/
Der Better Translation Manager (BTM) ist ein Ersatz für den Delphi Translation Manager alias Integrated Translation Environment (
ITE) und External Translation Manager (ETM).
Warum ist es besser? Nun, zum einen ist es
kostenlos, aber wichtiger; es funktioniert tatsächlich - im Gegensatz zum
ITE/ETM.
Warum?
Der heute mit Delphi ausgelieferte Standardübersetzungsmanager war ursprünglich ein Einzelprodukt, die Borland Translation Suite. Mit Delphi 5 wurde es Teil der Enterprise Edition.
Die Borland Translation Suite war vielversprechend, aber leider hat sie sich nie von seinen Ursprüngen als externes Tool weiterentwickelt und wurde immer durch schwere Fehler ausgebremst, so dass es sich in der Praxis völlig unbrauchbar machte. Die Folge ist, dass es niemand benutzt. Dies zeigt sich in der Fülle von selbst entwickelten und kommerziellen Alternativen.
Der große Vorteil des Standardübersetzungssystems besteht darin, dass es einfach funktioniert (das ist das System selbst, von dem ich spreche, nicht die Tools. Die Tools sind
grottenschlecht). Abgesehen von der Anforderung, dass man Resource Strings (Ressourcenzeichenketten) verwenden muss, muss man beim Coden nichts Besonderes tun. Zur Laufzeit legt man einfach die kompilierten Ressourcenmodule in den gleichen Ordner wie die eigene Anwendung und die Delphi Run Time Library übernimmt automatisch das Laden und Verwenden der Übersetzungen auf Basis der aktuellen Windows-Benutzeroberflächensprache.
Da Embarcadero nun endlich zugegeben hat, dass sie den Delphi Translation Manager nie reparieren werden und stattdessen empfehlen, alternative Lösungen zu finden, habe ich beschlossen, dass es an der Zeit ist, dieses kleine Problem ein für allemal zu lösen.
Die Kernfunktionalität des
Better Translation Managers wurde in zwei Wochen während meines Sommerurlaubs in Italien 2019 geschrieben. Erstaunlich, was man mit einer kleinen Pasta machen kann!
Funktionen / Features
- Erfordert keine Änderungen am Quellcode der zu übersetzenden Anwendung.
- Arbeitet mit dem bestehenden Delphi-Standardlokalisierungssystem.
- Übersetzt Ressourcenzeichenketten und alle Strings in Formen, unabhängig von den verwendeten Komponenten von Drittanbietern.
- Arbeitet mit kompilierten Anwendungen. Der Quellcode wird nie verwendet.
- Generiert lokalisierte binäre Ressourcenmodule (Ressourcen-DLLs). Verwendet keinen externen Compiler.
- Kann bestehende Übersetzungen aus kompilierten Anwendungs- und Ressourcenmodulen oder aus XLIFF-Lokalisierungs-Quelldateien (dfn-, rcn-Dateien) importieren.
- Lesen und Speichern von TMX- und TBX-Translation-Memory-Dateien.
- Importieren von Translation Memory aus TMX (Translation Memory eXchange), TBX (TermBase eXchange), Microsoft Glossar und CSV.
- Maschinelle Übersetzung mit Translation Memory, Microsoft Translation Service oder Microsoft Terminology Service.
- Formulare, Komponenten, Typen und Werte, die ignoriert werden sollen, können in einer Stoppliste angegeben werden.
- Übersetzungen werden auf Rechtschreibprüfung geprüft.
- Validierungsregeln, um häufige Übersetzungsfehler zu erkennen.
- Unterstützt die Bearbeitung von rechts nach links (RTL) basierend auf der Übersetzungssprache.
- Das Übersetzungsprojekt wird in einer einzigen XML-Datei gespeichert.
- Befehlszeilenschnittstelle für den Einsatz in automatisierten Build-Systemen.
- Schnell! Das Aktualisieren eines großen Projekts dauert mit dem ITE/ETM in der Regel weniger als eine Sekunde gegenüber vielen Minuten.
- Unterstützt alle Unicode-Versionen von Delphi (z.B. Delphi 9 und höher).
- Ressourcenmodule enthalten die Versionsressource der Quellanwendung.
Was es nicht tut
Es gibt eine Aufgabe, die BTM per Design nicht zu lösen versucht: Lokalisierung der Platzierung und Größe von Controls.
Da es meiner Erfahrung nach eine weitaus bessere Idee ist, die Benutzeroberfläche so zu gestalten, dass das Layout automatisch Änderungen in Schrift- und Textgröße und kürzere/längere übersetzungsbedingte Texte berücksichtigt, habe ich von Anfang an entschieden, dass ich die Lokalisierung von Größe und Position der Controls nicht unterstützen würde. Das hat mich auch entlastet, einen Runtime-Formular-Designer erstellen zu müssen und Controls von Drittanbietern visuell zu unterstützen (was bisher noch niemandem gelungen ist) und zu entscheiden, welche einzelnen Objekte Größen-/Positionswerte darzuerstellen sind.
Stattdessen lokalisiere ich einfach alle String Werte - und nur String Werte.
Aber warte..... Es gibt noch mehr!
Ja, du bekommst dieses kleine Wunder nicht nur umsonst. Du erhältst auch den vollständigen Quellcode.
Schnappe es vom
Repository. Weitere Details findest du im Repository.