Künstliche Intelligenz
Nach 30 Jahren Entwicklungszeit: GNU gettext 1.0 ist fertig
Das Internationalisierungs-Framework GNU gettext hat mit Version 1.0 einen Meilenstein erreicht. Das Release folgt auf Version 0.26 vom Juli 2025 und markiert damit nach über drei Jahrzehnten Entwicklungsarbeit einen Wendepunkt für das weitverbreitete Lokalisierungs-Tool.
Weiterlesen nach der Anzeige
Sun Microsystems hatte Anfang der 1990er-Jahre mit der Entwicklung von gettext begonnen. 1995 entwickelte Ulrich Drepper für das GNU-Projekt eine eigenständige Implementierung auf Basis von Suns Konzept. Seitdem hat sich das Framework zum Standard für die mehrsprachige Integration in Open-Source-Software etabliert. Projekte wie KDE, LibreOffice, Godot Engine oder Weblate verwalten mit gettext ihre Übersetzungen.
Neue Tools für maschinelle Übersetzung
Die wichtigste Neuerung in Version 1.0 ist die Integration von Large Language Models (LLMs) für maschinelle Vorabübersetzungen. Mit den beiden neuen Programmen msgpre und spit können Entwickler lokale LLMs nutzen, um PO-Dateien automatisch zu übersetzen. Während msgpre komplette PO-Dateien verarbeitet, wendet spit die maschinelle Übersetzung auf einzelne Nachrichten an.
Die Maintainer Bruno Haible und Daiki Ueno weisen in der Dokumentation allerdings ausdrücklich darauf hin, dass Anwender die Lizenzierung der verwendeten LLMs prüfen müssen. Die Modelle sollten GPL-kompatibel und im Sinne freier Software nutzbar sein. Durch die lokale Installation bleibt die Kontrolle über die zu übersetzenden Texte beziehungsweise die Daten beim Nutzer.
Verbesserte Workflows für Maintainer
Neben der LLM-Integration bringt gettext 1.0 Verbesserungen beim Handling von PO-Dateien. Das neue Programm po-fetch lädt übersetzte PO-Dateien automatisch von Übersetzungsprojekt-Websites herunter. Das vereinfacht den Synchronisations-Workflow, da Maintainer nicht mehr manuell nach aktualisierten Übersetzungen suchen müssen.
Weiterlesen nach der Anzeige
Die Parser für PO-Dateien wurden robuster und behandeln jetzt Sonderfälle wie Zeilenumbrüche in msgstr, Plural-Forms und Header-Einträge zuverlässiger. Für die Programmiersprachen Rust und OCaml gibt es eine erweiterte Unterstützung. Details finden sich in der Ankündigung der Version 1.0.
30 Jahre konservative Entwicklung
Dass gettext so lange im 0.x-Status verblieb, liegt an der konservativen Entwicklungsphilosophie des GNU-Projekts. Das Framework basiert auf dem Uniforum-Standard von 1988, GNU wählte dabei einen message-as-key-Ansatz aufgrund der größeren Einfachheit. Über die Jahre stand die Stabilität der API im Vordergrund, wie es bei kritischer Infrastruktur-Software typisch ist.
Die neuen Features in Version 1.0 sind optional und beeinträchtigen die Rückwärtskompatibilität nicht. Bestehende Workflows mit xgettext, msgmerge und msgfmt funktionieren unverändert weiter. Für Maintainer wichtig: PO-Dateien bleiben nun unverändert wie von Übersetzern eingereicht, statt automatisch mit dem POT-File synchronisiert zu werden – das vermeidet Merge-Konflikte und reduziert die Commits. Linux-Distributionen können problemlos auf die neue Version aktualisieren, da die Kernfunktionalität stabil bleibt.
Der Quellcode von gettext 1.0 steht auf den GNU-FTP-Servern zum Download bereit. Die LLM-Tools erfordern eine lokale Installation eines kompatiblen Sprachmodells.
(fo)