Die Dateiformate, die tatsächlich in der Produktivumgebung kaputtgehen
Software-Lokalisierung sieht einfach aus, bis Sie sie ausliefern. Ein Team schreibt en.json und geht davon aus, dass Spanisch, Deutsch und Arabisch denselben Weg gehen werden. Das werden sie nicht. Jedes Dateiformat hat eine Eigenart, die den Build einer unvorbereiteten Agentur zerstört. Nach 14 Jahren und mehreren tausend SaaS-Releases haben wir eine kurze Liste der Fälle, die selbst ausgereifte Engineering-Teams überraschen.
JSON, YAML und das Apostroph-Problem
Reines JSON hat keine Kommentare und keine Pluralunterstützung – für Englisch in Ordnung, in der Produktion fragil, sobald Übersetzer geschweifte Apostrophe (' vs '), schmale geschützte Leerzeichen um französische Interpunktion oder deutsche Guillemets (», «) hinzufügen. Ein französischer Übersetzer, der das korrekte L'application mit einem typografischen Apostroph schreibt, wird die linguistische QA bestehen und einen fragilen JSON-Parser zum Absturz bringen. Wir normalisieren Apostrophe beim Import, validieren die UTF-8-BOM-Präsenz und führen einen Syntax-Durchlauf durch, bevor ein Locale ausgeliefert wird.
Android strings.xml: das stille Escape-Zeichen
Android speichert Apostrophe als \' und kaufmännische Und-Zeichen als &. Übersetzer fügen routinemäßig die geschwungenen Zeichen aus Microsoft Word ein, die identisch aussehen und ausgeliefert werden – bis das Layout zur Laufzeit Mojibake anzeigt. Wir verwenden einen benutzerdefinierten XLIFF-Roundtrip für Android-Assets, sodass der Übersetzer niemals rohes XML sieht, und maskieren beim Export erneut.
iOS .strings und .stringsdict
Das klassische Problem sind Pluralregeln. iOS verwendet CLDR-Pluralkategorien (zero, one, two, few, many, other) über .stringsdict. Ein unerfahrener Übersetzer behandelt die Datei als eins-zu-eins und verliert Pluralvarianten – Ihre deutsche App sagt dann "1 Nachrichten". Wir verwenden einen Plural-bewussten Editor, der jede CLDR-Kategorie so anzeigt, wie sie für das Ziel-Locale erforderlich ist, und den Export verweigert, wenn eine Kategorie fehlt.
.NET .resx und Java .properties
.resx akzeptiert XML-Kommentare und eingebettete Code-Referenzen; .properties verwendet standardmäßig ISO-8859-1 (moderne Toolchains unterstützen UTF-8, aber die falsche Kombination liefert immer noch \uXXXX-Escape-Zeichen, die Übersetzer verwirren). Wir erzwingen UTF-8 beim Import und geben native Escape-Zeichen nur zur Build-Zeit aus.
Der XLIFF-Roundtrip
Wann immer möglich, extrahieren wir Quelldateien nach XLIFF 1.2 oder 2.0, übersetzen in unserem Editor mit angehängtem Kontext und mergen neu. Dies ermöglicht es Übersetzern, den Quellkommentar, den Screenshot und die Einschränkung (Zeichenlimit, ICU-Pluralform, RTL-Spiegelungs-Flag) zu sehen, ohne jemals die Quelldatei anzufassen. Die Build-Pipeline mergt zurück in das Format, das Ihre Entwickler committed haben.