Internationalisierung: Übersetzungsstrings mit Claude verwalten
AI generated
Claude
>_
Claude AI · Internationalisierung · Lokalisierung
Übersetzungsstrings mit Claude verwalten
Fehlende Schlüssel finden, kontextgerecht übersetzen, Pluralformen korrekt abbilden

Sprachdateien laufen in jedem wachsenden Projekt irgendwann auseinander: Ein neuer Text wird in der Ausgangssprache ergänzt, die Übersetzung in drei weiteren Sprachdateien wird vergessen, und niemand bemerkt es, bis ein Kunde einen englischen Platzhaltertext in der deutschen Oberfläche meldet. Dieser Artikel zeigt, wie Claude beim systematischen Finden fehlender Schlüssel, bei kontextgerechten statt wörtlichen Übersetzungen und bei der korrekten Behandlung von Pluralisierungsregeln unterstützt.

12 Min. Lesezeit i18n Lokalisierung Pluralisierung Übersetzungsqualität

1. Das Kernproblem: Sprachdateien laufen auseinander

In den meisten Projekten entsteht Text zuerst in einer Ausgangssprache, häufig Deutsch oder Englisch, und wird erst danach in weitere Sprachdateien übertragen. Dieser Prozess ist in der Praxis selten synchron: Ein neues Feature wird ausgeliefert, die Übersetzung für zwei von fünf unterstützten Sprachen fehlt noch, und ohne systematische Prüfung fällt das erst auf, wenn ein Nutzer den fehlenden Text als englischen Fallback oder als rohen Schlüsselnamen zu Gesicht bekommt.

Das Problem verschärft sich mit jeder zusätzlichen Sprache, weil die Zahl der möglichen Lücken linear mit der Anzahl der Sprachdateien wächst. Ein manueller Abgleich per Diff zwischen den Dateien wird ab einigen hundert Schlüsseln unpraktikabel, gerade weil verschachtelte JSON- oder YAML-Strukturen Lücken an tiefen Ebenen leicht verstecken.

2. Fehlende Übersetzungsschlüssel systematisch finden lassen

Claude eignet sich gut, um ein Skript zu entwerfen, das alle Sprachdateien rekursiv einliest, die Schlüsselstruktur der Referenzsprache als Baseline nimmt und für jede andere Sprache exakt auflistet, welche Schlüssel fehlen, welche zusätzlich vorhanden sind, und welche zwar existieren, aber einen leeren oder identischen Wert zur Ausgangssprache haben, was häufig auf eine vergessene Übersetzung statt auf eine bewusste Gleichheit hindeutet.

Ein solches Skript lässt sich direkt in die CI-Pipeline einbinden, sodass ein Pull Request mit neuem Text in der Ausgangssprache automatisch markiert wird, wenn die entsprechenden Übersetzungen fehlen. Das verlagert die Prüfung von einer manuellen, fehleranfälligen Kontrolle vor dem Release auf eine automatisierte Prüfung bei jedem einzelnen Commit.


import json
from pathlib import Path

def flatten(d: dict, prefix: str = "") -> dict:
    result = {}
    for key, value in d.items():
        full_key = f"{prefix}.{key}" if prefix else key
        if isinstance(value, dict):
            result.update(flatten(value, full_key))
        else:
            result[full_key] = value
    return result

def find_missing_keys(reference_lang: str, target_langs: list[str], base_dir: Path):
    reference = flatten(json.loads((base_dir / f"{reference_lang}.json").read_text()))
    report = {}
    for lang in target_langs:
        target = flatten(json.loads((base_dir / f"{lang}.json").read_text()))
        missing = sorted(set(reference) - set(target))
        identical = [k for k in target if target.get(k) == reference.get(k) and k in reference]
        report[lang] = {"missing": missing, "suspiciously_identical": identical}
    return report

3. Kontextgerechte statt wörtliche Übersetzungsvorschläge

Eine wörtliche Übersetzung ist bei UI-Texten häufig die falsche Wahl. Der englische Button-Text Get started wird bei wörtlicher Übersetzung ins Deutsche schnell zu einer sperrigen Konstruktion, während eine kontextgerechte Übersetzung wie Jetzt starten im Interface deutlich natürlicher wirkt und zur üblichen Tonalität von Bedienelementen passt. Claude liefert bessere Vorschläge, wenn der Kontext explizit mitgegeben wird: Handelt es sich um einen Button, eine Fehlermeldung, einen Tooltip oder einen Fließtext.

Besonders wertvoll ist es, Claude nicht nur den einzelnen String, sondern den umgebenden Verwendungskontext zu geben, etwa den Screenshot-Beschreibung, die maximale verfügbare Zeichenbreite bei einem Button, oder den Ton der restlichen Oberfläche. Diese Zusatzinformation verhindert technisch korrekte, aber im Interface unpassende Übersetzungen, die zwar den Sinn treffen, aber stilistisch aus dem Rahmen fallen.


Prompt für kontextgerechte Übersetzung:

Übersetze folgende UI-Strings von Englisch nach Deutsch für eine
B2B-SaaS-Anwendung mit förmlicher Anrede (Sie-Form):

- key: "checkout.error.card_declined"
  context: Fehlermeldung direkt unter dem Zahlungsformular
  source: "We couldn't process your card. Please try again."

- key: "onboarding.cta.primary"
  context: Primärer Button, max. 20 Zeichen Breite
  source: "Get started"

Liefere natürliche, kontextpassende Übersetzungen, keine
wörtlichen Übertragungen.

4. Pluralisierungsregeln verschiedener Sprachen berücksichtigen

Deutsch und Englisch kennen nur zwei Pluralformen, Singular und Plural, was viele Entwickler dazu verleitet, Pluralisierung als einfaches Ein-Bit-Problem zu behandeln. Andere Sprachen widerlegen diese Annahme deutlich: Russisch benötigt drei unterschiedliche Formen abhängig von der letzten Ziffer der Zahl, Arabisch kennt bis zu sechs Formen inklusive gesonderter Regeln für null, eins und zwei, und Polnisch unterscheidet zusätzlich zwischen kleinen und großen Zahlen.

Claude kennt die CLDR-Pluralregeln der gängigen Sprachen und kann für ein gegebenes ICU-MessageFormat-Muster zuverlässig alle benötigten Formen für eine Zielsprache ergänzen, statt nur die im Ausgangstext vorhandenen zwei Formen naiv zu kopieren. Wichtig ist, im Prompt explizit nach dem ICU-Standard oder dem im Projekt verwendeten Pluralisierungsformat zu fragen, da unterschiedliche Frameworks leicht abweichende Syntax verwenden.


// ICU MessageFormat, Beispiel Russisch (3 Formen nötig)
{
  "cart.items_count": "{count, plural, one {# Artikel} few {# Artikel} many {# Artikel} other {# Artikel}}"
}

// Von Claude korrekt aufgelöst für Russisch:
{
  "cart.items_count": "{count, plural, one {# товар} few {# товара} many {# товаров} other {# товара}}"
}
// one: 1, 21, 31... / few: 2-4, 22-24... / many: 0, 5-20, 25-30...

5. Platzhalter und Interpolation korrekt behandeln

Ein häufiger Fehler bei automatisierten oder halbautomatisierten Übersetzungen ist das versehentliche Verändern von Platzhaltern, etwa {userName} wird zu {Benutzername} übersetzt, obwohl der Platzhalter im Code exakt so heißen muss, wie er in der Anwendung referenziert wird. Claude übersetzt Platzhalter zuverlässig korrekt, wenn im Prompt explizit darauf hingewiesen wird, dass Text in geschweiften oder eckigen Klammern unverändert erhalten bleiben muss.

Zusätzlich sollte die Wortstellung um Platzhalter herum geprüft werden, da manche Sprachen eine andere Satzstellung erfordern als die Ausgangssprache. Ein String wie {count} neue Nachrichten von {sender} lässt sich nicht in jeder Sprache in derselben Reihenfolge sinnvoll übersetzen, und Claude kann solche Umstellungen vorschlagen, solange die Platzhalter selbst unangetastet bleiben.

6. Terminologie-Konsistenz über das Projekt hinweg

In größeren Projekten mit mehreren Übersetzern oder mehreren Übersetzungsrunden über Monate hinweg entsteht leicht Begriffsinkonsistenz: Derselbe englische Fachbegriff wird an einer Stelle mit einer deutschen Übersetzung und an anderer Stelle mit einer zweiten, ebenfalls korrekten, aber abweichenden Übersetzung wiedergegeben. Für Nutzer wirkt das inkonsistent und erschwert das Verständnis, selbst wenn beide Varianten für sich genommen richtig sind.

Claude kann anhand eines gepflegten Glossars mit bevorzugten Begriffsübersetzungen neue Übersetzungsvorschläge konsequent daran ausrichten, und ein bestehendes Sprachdateien-Set lässt sich gezielt nach Begriffen durchsuchen, die uneinheitlich übersetzt wurden. Diese Konsistenzprüfung ist deutlich schneller als eine manuelle Durchsicht sämtlicher Strings.

7. Automatisierter Workflow: CI-Check für fehlende Keys

Ein CI-Check für fehlende Übersetzungsschlüssel sollte bei jedem Pull Request laufen, der Änderungen an der Referenz-Sprachdatei enthält, und die Pipeline entweder mit einer Warnung oder, bei strengeren Projekten, mit einem harten Fehler beenden, solange nicht alle Zielsprachen den neuen Schlüssel enthalten. Claude generiert ein solches Prüfskript zuverlässig, inklusive einer gut lesbaren Ausgabe, die pro Sprache genau auflistet, welche Schlüssel fehlen.

Ergänzend lohnt sich eine automatische Zuweisung: Fehlt eine Übersetzung, kann ein Skript automatisch einen Übersetzungsvorschlag von Claude generieren und als Entwurf markiert in die Sprachdatei einfügen, sodass ein menschlicher Reviewer nur noch prüfen statt komplett neu übersetzen muss. Das beschleunigt den Workflow spürbar, ohne die Qualitätskontrolle durch einen Menschen zu ersetzen.


#!/bin/bash
# CI-Check: bricht ab, wenn Übersetzungsschlüssel fehlen
set -euo pipefail

MISSING=$(python3 scripts/find_missing_keys.py \
  --reference de \
  --targets en,fr,es,it \
  --format json | jq '[.[] | .missing] | flatten | length')

if [ "$MISSING" -gt 0 ]; then
  echo "Fehler: $MISSING fehlende Übersetzungsschlüssel gefunden."
  python3 scripts/find_missing_keys.py --reference de --targets en,fr,es,it
  exit 1
fi
echo "Alle Übersetzungsschlüssel vollständig.

8. Claude als Reviewer für Übersetzungsqualität einsetzen

Neben der Erstellung neuer Übersetzungen eignet sich Claude auch als Reviewer für bereits vorhandene, von Menschen übersetzte Strings. Ein Review-Prompt, der die Zielgruppe, den Tonfall und bekannte Terminologie-Vorgaben beschreibt, deckt zuverlässig Stellen auf, an denen eine Übersetzung zwar grammatikalisch korrekt, aber stilistisch unpassend, zu formell, zu informell oder inkonsistent mit dem restlichen Interface ist.

Dieser Review-Schritt ersetzt keine muttersprachliche Endabnahme bei geschäftskritischen Texten, reduziert aber die Zahl der Probleme, die überhaupt erst bis zur menschlichen Prüfung durchdringen, deutlich, weil offensichtliche Inkonsistenzen und Tonalitätsbrüche schon vorab erkannt und korrigiert werden.

9. Kulturelle Anpassung jenseits reiner Sprachübersetzung

Internationalisierung endet nicht bei korrekter Grammatik. Datumsformate, Zahlenformate, Anrede-Konventionen und sogar Farbassoziationen unterscheiden sich zwischen Zielmärkten, und ein technisch korrekt übersetzter String kann trotzdem kulturell unpassend wirken, etwa eine informelle Anrede in einem Markt, in dem geschäftliche Kommunikation traditionell formell erfolgt.

Claude kann bei der Identifikation solcher kulturellen Anpassungsbedarfe unterstützen, etwa durch Hinweise auf unübliche Anrede-Konventionen oder auf Formulierungen, die in bestimmten Märkten missverständlich wirken könnten, ersetzt aber keine Marktexpertise vor Ort bei besonders sensiblen oder rechtlich relevanten Texten wie AGB oder Widerrufsbelehrungen.

Sprache Anzahl Pluralformen Beispiel-Regel Häufiger Fehler bei Übersetzung
Deutsch 2 (Singular, Plural) 1 Artikel / 2 Artikel Wörtliche statt natürliche Formulierung
Englisch 2 (Singular, Plural) 1 item / 2 items Referenzsprache, selten fehlerhaft
Russisch 3 (one, few, many) 1, 21 / 2-4, 22-24 / 0, 5-20 Naives Kopieren der 2-Form-Struktur
Arabisch 6 (zero, one, two, few, many, other) 0 / 1 / 2 / 3-10 / 11-99 / 100+ Fehlende Sonderform für Dual (zwei)
Polnisch 4 (one, few, many, other) 1 / 2-4 / 5-21 / 22-24 Verwechslung mit russischer Regel
Japanisch 1 (keine Pluralunterscheidung) 1 個 / 5 個 identisch strukturiert Unnötige Pluralform-Logik eingebaut

Mironsoft

KI-gestützte Entwicklung, Agenten-Workflows und Team-Prozesse

Claude oder andere KI-Tools im Team einsetzen, aber ohne klaren Workflow?

Wir richten KI-gestützte Entwicklungs-Workflows für Teams ein, von CLAUDE.md-Konventionen über Subagenten-Strategien bis zu Code-Review-Prozessen, die menschliche Kontrolle und KI-Tempo verbinden.

Workflow-Setup

CLAUDE.md, Projektkonventionen und Tool-Berechtigungen für das Team sauber einrichten.

Agenten-Strategie

Subagenten- und Automatisierungs-Workflows für wiederkehrende Entwicklungsaufgaben aufbauen.

Team-Onboarding

Entwickler im produktiven, sicheren Umgang mit KI-Coding-Assistenten schulen.

10. Zusammenfassung

Übersetzungsstrings mit Claude: Das Wichtigste auf einen Blick

Fehlende Keys

Rekursiver Abgleich der Sprachdateien deckt Lücken zuverlässig auf, ideal für CI.

Kontext zählt

Kontextgerechte statt wörtliche Übersetzung braucht Angaben zum Verwendungsort.

Pluralformen

Viele Sprachen brauchen mehr als zwei Formen, CLDR-Regeln sind der Standard.

Review-Rolle

Claude eignet sich als Vorprüfung, ersetzt aber keine muttersprachliche Endabnahme.

11. FAQ: Übersetzungsstrings mit Claude: Das Wichtigste auf einen Blick

1Wie findet man fehlende Übersetzungsschlüssel am zuverlässigsten?
Über ein Skript, das die Referenzsprache als Baseline nimmt, alle Sprachdateien rekursiv einliest und für jede Zielsprache fehlende, zusätzliche und verdächtig identische Schlüssel auflistet, idealerweise eingebunden in die CI-Pipeline.
2Warum ist wörtliche Übersetzung bei UI-Texten oft problematisch?
UI-Texte müssen zur verfügbaren Zeichenbreite, zum Tonfall der übrigen Oberfläche und zu den Erwartungen der Nutzer passen. Eine wörtliche Übersetzung trifft oft den Sinn, wirkt aber sperrig oder unpassend.
3Wie viele Pluralformen braucht Arabisch?
Bis zu sechs Formen: zero, one, two, few, many und other, jeweils mit eigenen Zahlenbereichen. Das unterscheidet sich deutlich von den nur zwei Formen in Deutsch oder Englisch.
4Kann Claude ICU-MessageFormat-Strings direkt korrekt generieren?
Ja, wenn im Prompt explizit nach dem ICU-Standard gefragt wird und die Zielsprache genannt wird, generiert Claude die passende Anzahl an Pluralformen gemäß den CLDR-Regeln der jeweiligen Sprache.
5Wie verhindert man, dass Claude Platzhalter versehentlich übersetzt?
Indem der Prompt explizit darauf hinweist, dass Text in geschweiften oder eckigen Klammern unverändert erhalten bleiben muss, und indem Beispiele mit korrekt behandelten Platzhaltern mitgegeben werden.
6Wie lässt sich Terminologie-Konsistenz über ein großes Projekt hinweg sicherstellen?
Über ein gepflegtes Glossar mit bevorzugten Begriffsübersetzungen, an dem sich Claude bei neuen Vorschlägen orientiert, kombiniert mit einer gezielten Suche nach uneinheitlich übersetzten Begriffen im bestehenden Bestand.
7Ersetzt Claude einen menschlichen Übersetzungs-Review vollständig?
Nein, besonders nicht bei geschäftskritischen oder rechtlich relevanten Texten. Claude reduziert aber die Zahl der Probleme, die überhaupt bis zur menschlichen Prüfung gelangen.
8Wie oft sollte der CI-Check für fehlende Schlüssel laufen?
Bei jedem Pull Request, der Änderungen an der Referenz-Sprachdatei enthält, damit fehlende Übersetzungen sofort auffallen und nicht erst kurz vor dem Release.
9Was ist der häufigste Fehler bei Pluralisierung in internationalen Projekten?
Die Annahme, dass zwei Formen wie in Deutsch oder Englisch für alle Sprachen ausreichen. Sprachen wie Russisch, Polnisch oder Arabisch benötigen deutlich mehr Formen mit eigenen Zahlenbereichen.
10Kann Claude auch bei kulturellen statt rein sprachlichen Anpassungen helfen?
In begrenztem Umfang ja, etwa bei Hinweisen auf unübliche Anrede-Konventionen. Für besonders sensible oder rechtlich relevante Texte ersetzt das aber keine lokale Marktexpertise.