Der Auftrag
Zwischen den Monaten März und April 2025 hatte ich die Aufgabe, eine im Jahr 2013 entwickelte nichtkommerzielle Website zu modernisieren und auf den aktuellen Stand der Technik zu heben. Die Seite hat die Hauptaufgabe, Dokumente in 11 verschiedenen Sprachen darzustellen und zu durchsuchen. Gleichzeitig existiert ca. ein Dutzend Hilfsprogramme, um die Daten in verschiedene Formate umzuwandeln und mit verknüpften Informationen anzureichern.
Die Website basiert auf dem Framework Symfony, einem hervorragenden Werkzeug für die Programmiersprache PHP und enthält alle Komponenten, die der Programmierer benötigt, um schnelle und sichere Webanwendungen zu erstellen, dabei ist ein Modul für Übersetzungen enthalten.
Übersetzungen werden im Format “yaml” erwartet. Pro Sprache existiert eine Datei. Es handelt sich um reine Textdateien. In dieser Datei wird jedes Schlüsselwort einer Übersetzung zugeordnet. Ein Beispiel:
table1:
col1: Sprache
col2: Datum
col3: Download
col4: Größe
In diesem Fall wäre unter dem Schlüsselwort “table1.col1” das Wort “Sprache” erreichbar.
Das Speichern von Wörterbüchern auf diese Weise hat sowohl Vor- als auch Nachteile.
Vorteile:
- Die Dateien sind einfach strukturiert und gut zu lesen. Yaml ermöglicht eine klare Hierarchie von Einträgen.
- Neue Sprachen sind sehr leicht hinzuzufügen
- Platzhalter können mehrfach verwendet werden
- Die Übersetzungen können hervorrhagend in einer Versionskontrolle abgelegt werden
- Die Integration mit Symfony ist hervorragend
Nachteile:
- Yaml-Dateien enthalten keinen Kontext, man kann also keinen Bezug zwischen der Übersetzung und ihrem Anwendungsort hinterlegen
- Ein falscher oder fehlender Key fällt häufig erst zur Laufzeit auf – das kann zu fehlerhaften oder fehlenden Texten führen.
- Wenn z. B. ein Key in der englischen Datei hinzugefügt wird, muss dieser manuell in anderen Sprachdateien ergänzt werden.
Auf der Suche nach einer Lösung
Es hat sich ein gewaltiges Ökosystem mit dem Fokus auf Teamwork aufgebaut. Mehrere Anbieter von Online-Lösungen buhlen um die Gunst der Programmierer und viele davon möchten gerne kleine Projekte kostenfrei unterstützen. Dadurch, dass mein Projekt aber sehr umfangreich ist und 11 verschiedene Sprachen unterstützt, sind auch die Übersetzungsdateien recht umfangreich. Das von den Anbietern kostenfrei angebotene Kontingent ist dadurch überschritten.
Recherche tut also Not. In der folgenden Tabelle habe ich verschiedene Anbieter abobasierter Übersetzungsdienste und deren jährliche Preise aufgelistet. Als Basis für die Auswahl des Tarifs habe ich den jetzigen Stand meiner Übersetzungen plus 20% Puffer für zukünftige Übersetzungen in die Auswahl einbezogen.
Anbieter | Tarif | Nettopreis pro Jahr (Abo) |
---|---|---|
crowdin.com | Pro | € 539,- |
localise.biz | Pro | € 83,40 |
centus.com | Start | € 1.740,- |
localizely.com | Starter | € 192,- |
simplelocalize.io | Developer | € 144,- |
poeditor.com | Start | € 152,88 |
icanlocalize.com | Nach Aufwand | Agenturpreise |
Der Preis bei centus.com tanzt ein wenig aus der Reihe, aber bei “Start” handelt es sich tatsächlich um den kleinsten, verfügbaren Tarif.
Kostenlose Editoren
Zwei kostenfreie Angebote möchte ich den Lesern nicht vorenthalten:
weblate.org bietet seine Lösung als “self-hosted” OpenSource-Software, gerne auch im (nicht allzu schwer zu installierenden) Docker-Container an. Wer die Installation nicht hinbekommt, kann die Cloud-Lösung ab € 45,- pro Monat buchen, ist dann aber auch wieder bei € 540 jährlichen Kosten. Im Test hielt ich die Oberfläche für etwas funktionsüberladen und wichtige Funktionen waren nicht intuitiv erreichbar.
pollly.orson.io beschreibt sich selbst als: Der einfachste Editor zum Übersetzen von Anwendungen & Websites für YAML-Dateien, eine Einschätzung, die ich bestätigen kann.
Wer ein Miniprojekt übersetzen möchte, ist bei bei dem Papageien mit den drei “L” gut aufgehoben.
Die Lösung: BabelEdit
Wohlgemerkt: Es war meine Aufgabe, eine Website technisch und optisch auf den neuesten Stand zu bringen. Das Abschließen von Verträgen mit jährlichen Kosten war ausdrücklich nicht meine Aufgabe!
Eine letzte, verzweifelte Suche nach “yaml translation software” brachte dann auf Seite 3 der Suchergebnisse eine Lösung: BabelEdit.
BabelEdit ist eine Software für macOS (auch x64), Windows und Linux der deutschen Softwareschmiede Code&Web, die sehr einfach zu bedienen ist, allerdings einen begrenzten Funktionsumfang hat. Der Preis ist mehr als vernünftig: Für eine zeitlich unbegrenzte Lizenz von BabelEdit zahlt man € 49,99 inklusive Mehrwertsteuer. Dabei erhält man 1 Jahr kostenfreie Updates und die Erlaubnis, BabelEdit auf zwei persönlichen Computern zu installieren. In einer Zeit, in der die Anbieter uns mit Abos das Geld solange aus der Tasche saugen wollen, bis nur noch Fusseln kommen, ist diese Lizenzierung mehr als nur fair.
Etwas Geld verdient Code&Web durch das Angebot, durch verschiedene KIs automatisierte Übersetzungen erstellen zu lassen. BabelEdit enthält eine Funktion, auf Knopfdruck eine KI-Übersetzung wahweise von Google Translate, DeepL, Microsoft oder ChatGPT zu erzeugen und - bei Gefallen - mit einem Tastendruck in das entsprechende Übersetzungsfeld zu übernehmen. Mutige können auch gleich das gesamte Dokument “vorübersetzen” lassen.
Aber auch dieses Angebot ist fair gestaltet. Für € 19,99 inklusive Mehrwertsteuer erhält man 500.000 “Credits”, wobei 1 Credit einem übersetzten Zeichen entspricht. Die Lizenz von BabelEdit enthält dabei ein Startkontingent von 125.000 “Credits”, was für die meisten, auch größeren Anwendungen bereits ausreicht. Wer auf die Bequemlichkeit verzichtet, kann das Übersetzungsfenster ausschalten und die Übersetzung manuell auf DeepL vornehmen. 500.000 Zeichen entsprechen übrigens ca. 50 DIN A4-Seiten Text in Arial 12.
Vor- und Nachteile von BabelEdit
Vorteile:
- Sehr einfache Bedienung
- Maschinelle Vorübersetzung per Knopfdruck
- Zugriff auf die DeepL-API, ohne mit dem Hersteller einen eigenen Vertrag abzuschließen
- keine fehlenden Übersetzungsschlüssel mehr
- unterstützt viele Formate wie JSON, YAML, oder Javas .properties
- keine Beschränkung der Anzahl von “Keys” und Übersetzungen
- funktioniert auch Offline (ohne maschinelle Übersetzung)
- die Übersetzungsdateien können in der Versionskontrolle gespeichert werden
- Sehr faires Preismodell
- von europäischen Unternehmen
Nachteile:
- Einfacher Funktionsumfang
- Es können keine Bildschirmfotos hinterlegt werden, somit bleibt der Einsatzzweck und -Ort einer Übersetzung vielleicht im Dunkeln 1
- Plausibilitätsprüfung nur durch kostenpflichtige KI namens “Consistency AI” 2
- Unterstützung von Symfony nur durch “Generisches YAML-Projekt”, daher findet BabelEdit die Anwendungsorte der Übersetzungen nicht im Quellcode meiner Twig-Dateien
keine Teamarbeit ohne eigene Lizenz
Wer sich gezielt für eine Offline-fähige Software für Übersetzungen entscheidet, kann es kaum als Nachteil werten, dass man damit nicht im Team arbeiten kann. Möchte man die Dateien an einen Übersetzer geben, benötigt also auch dieser die Software BabelEdit. Es wäre dem Anbieter gegenüber unfair, dies anzukreiden. BabelEdit ermöglicht übrigens den Export von Übersetzungsdateien in einem Format, das z.B. mit LibreOffice Calc gelesen werden kann. Ist der Übersetzer einigermaßen computeraffin, könnte diese Funktion bereits ausreichen.
1: Eine Implementation von Bildschirmfotos ist laut Hersteller bereits in Arbeit
2: Zumindest eine Prüfung, ob alle Übersetzungen mit demselben Satzzeichen enden, wäre problemlos ohne KI möglich
Fazit
Durch das faire Lizenzmodell, die einfache Bedienung und die Anbindung an die DeepL API ist BabelEdit nun das Übersetzungstool meiner Wahl.
Das Format von YAML ist einfach und intuitiv zu verstehen und wird von quasi jeder Programmiersprache entweder nativ, oder durch Module unterstützt. Die Implementation einer Klasse TTranslator für meine Lieblingssprache Embarcadero Delphi, zur Zeit (22. April 2025) auf Platz 9 des TIOBE-Index der meisterwähnten Programmiersprachen, hat mich nicht einmal 2 Stunden gekostet - Tests eingeschlossen.
Kurz: Das Geld für BabelEdit ist hervorragend angelegt!
Kommentare
Keine Kommentare