Tutorials//9 Min. Lesezeit

Sprachanpassung in Software: Über die wörtliche Übersetzung hinausgehen

Eray Gündoğmuş
Teilen

Sprachanpassung in Software: Über die wörtliche Übersetzung hinausgehen

Wichtigste Erkenntnisse

  • Sprachanpassung befasst sich mit Grammatik, Pluralformen, Genus, Formalität und kulturellem Kontext — nicht nur mit Vokabular
  • ICU MessageFormat bietet eine Standardsyntax für die sprachübergreifende Behandlung von Pluralformen, Genus und Select-Ausdrücken
  • Verschiedene Sprachen haben unterschiedliche Pluralregeln — Arabisch hat 6 Pluralformen, Japanisch hingegen keine
  • Rechts-nach-links (RTL) Sprachen erfordern eine Spiegelung der Benutzeroberfläche, nicht nur eine Änderung der Textrichtung
  • Korrekte Sprachanpassung reduziert Verwirrung bei Nutzern und verbessert die Produktakzeptanz in Zielmärkten

Was ist Sprachanpassung?

Sprachanpassung ist der Prozess, Softwareinhalte an die sprachlichen Regeln, kulturellen Normen und Nutzererwartungen jedes Zielgebiets anzupassen. Sie geht über die Übersetzung (das Ersetzen von Wörtern einer Sprache durch Wörter einer anderen) hinaus und berücksichtigt, wie sich Sprachen strukturell unterscheiden.

Englisch verwendet beispielsweise „1 item" vs. „2 items" (zwei Pluralformen), während Polnisch drei Formen hat: „1 element", „2 elementy", „5 elementów". Russisch hat eine ähnliche Komplexität. Arabisch hat sechs verschiedene Pluralkategorien. Eine korrekte Behandlung erfordert mehr als eine einfache Wörterbuchsuche.

Pluralregeln

Die Behandlung von Pluralformen ist eine der sichtbarsten Herausforderungen bei der Sprachanpassung in Software. Das Unicode CLDR (Common Locale Data Repository) definiert sechs Pluralkategorien: zero, one, two, few, many und other.

Beispiele nach Sprache

SpracheVerwendete KategorienBeispiel
Englischone, other1 file, 2 files
Französischone, other1 fichier, 2 fichiers (aber: „one" gilt für 0 und 1)
Polnischone, few, many, other1 plik, 2 pliki, 5 plików
Arabischzero, one, two, few, many, otherAlle 6 Formen werden verwendet
JapanischotherNur eine Form (keine Pluralformen)
Russischone, few, many, other1 файл, 2 файла, 5 файлов

ICU MessageFormat für Pluralformen

{count, plural,
  one {# file selected}
  other {# files selected}
}

Für Polnisch würde derselbe Schlüssel folgendes verwenden:

{count, plural,
  one {# plik wybrany}
  few {# pliki wybrane}
  many {# plików wybranych}
  other {# pliku wybranego}
}

Die i18n-Bibliothek ermittelt anhand der im CLDR definierten Pluralregeln der jeweiligen Locale, welche Kategorie zu verwenden ist.

Genus und grammatikalische Kongruenz

Viele Sprachen haben ein grammatikalisches Genus, das Artikel, Adjektive und Verbformen beeinflusst. Im Französischen wird „The file is deleted" je nach Kontext unterschiedlich übersetzt:

  • Maskulin: „Le fichier est supprimé"
  • Feminin: „La photo est supprimée"

ICU MessageFormat behandelt dies mit select:

{gender, select,
  male {Le fichier est supprimé}
  female {La photo est supprimée}
  other {L'élément est supprimé}
}

Anwendungen müssen den Genuskontext zusammen mit dem übersetzten String übergeben, damit die korrekte Form gewählt werden kann.

Formalitätsstufen

Sprachen wie Japanisch, Koreanisch, Deutsch und Spanisch unterscheiden zwischen formeller und informeller Anrede. Dies betrifft:

  • Pronomen: Deutsches „du" (informell) vs. „Sie" (formell)
  • Verbkonjugationen: Spanisches „tú tienes" vs. „usted tiene"
  • Gesamte Satzstrukturen: Japanisches Keigo (Höflichkeitssprache) verändert den Satzbau

Software für diese Märkte muss eine Formalitätsstufe festlegen und diese einheitlich anwenden. Die meisten B2B-Softwarelösungen verwenden formelle Anrede, während Consumer-Apps informelle wählen können.

Manche Anwendungen ermöglichen Nutzern, ihre bevorzugte Formalitätsstufe in den Einstellungen zu wählen, was die Pflege paralleler Übersetzungssätze erfordert.

Textexpansion und -kontraktion

Bei der Übersetzung aus dem Englischen in andere Sprachen ändert sich die Textlänge erheblich:

ZielspracheTypische Expansion
Deutsch+30% länger
Finnisch+30–40% länger
Französisch+15–20% länger
Chinesisch−30% kürzer
Japanisch−20–30% kürzer
Koreanisch−10–20% kürzer

Dies beeinflusst das UI-Layout, Schaltflächengrößen, Tabellenspalten und Navigationsmenüs. Eine korrekte Sprachanpassung erfordert:

  • Flexible Layouts, die Textexpansion aufnehmen können
  • Tests mit der längsten Zielsprache (oft Deutsch oder Finnisch)
  • Vermeidung von Containern mit fester Breite für übersetzbaren Text
  • CSS-Techniken wie text-overflow: ellipsis als letztes Mittel, nicht als Standard

Arabisch, Hebräisch, Persisch und Urdu werden von rechts nach links geschrieben. Die RTL-Anpassung geht über das bloße Setzen von dir="rtl" am HTML-Element hinaus:

  • UI-Spiegelung: Navigation, Seitenleisten und Icon-Positionen sollten gespiegelt werden
  • Bidirektionaler Text: Gemischter LTR/RTL-Inhalt (z. B. englische Markennamen in arabischem Text) erfordert eine korrekte Implementierung des Unicode Bidirectional Algorithm
  • Richtungsgebundene Icons: Pfeil-Icons, Fortschrittsanzeigen und „Zurück"-Schaltflächen müssen gespiegelt werden
  • Zahlen: Arabisch-Indische Ziffern (٠١٢٣) können in manchen Kontexten erwartet werden, während in anderen westliche Ziffern (0123) verwendet werden
  • CSS logical properties: margin-inline-start statt margin-left für automatische RTL-Unterstützung verwenden
/* Statt: */
.sidebar { margin-left: 20px; }

/* Logische Properties verwenden: */
.sidebar { margin-inline-start: 20px; }

Datums-, Uhrzeit- und Zahlenformatierung

Locale-bewusste Formatierung ist ein wesentlicher Teil der Sprachanpassung:

FormatUS-EnglischDeutschJapanisch
Datum03/02/202602.03.20262026年3月2日
Zahl1,234.561.234,561,234.56
Währung$1,234.561.234,56 €¥1,235
Uhrzeit3:30 PM15:3015:30

Die Intl API in JavaScript übernimmt die meiste Formatierung automatisch:

new Intl.NumberFormat('de-DE', {
  style: 'currency',
  currency: 'EUR'
}).format(1234.56)
// → "1.234,56 €"

Praktische Implementierungstipps

  1. ICU MessageFormat verwenden: Es behandelt Pluralformen, Genus und Select-Ausdrücke sprachübergreifend auf standardisierte Weise
  2. Übersetzte Strings niemals verketten: „Welcome, " + name + „!" funktioniert nicht in Sprachen mit anderer Wortstellung
  3. Alle nutzerseitigen Texte externalisieren: Auch Fehlermeldungen und Validierungstexte müssen übersetzt werden
  4. Mit Pseudo-Lokalisierung testen: Werkzeuge verwenden, die Text expandieren und Sonderzeichen hinzufügen, um Layout-Probleme frühzeitig zu erkennen
  5. Kontext für Übersetzer bereitstellen: Ein String wie „Open" könnte ein Verb sein („Open the file") oder ein Adjektiv („The file is open") — der Kontext bestimmt die korrekte Übersetzung
  6. CSS logical properties verwenden: Sie behandeln RTL-Layouts automatisch ohne separate Stylesheets
  7. Mit Muttersprachlern validieren: Automatisierte Tools erkennen Formatierungsprobleme, aber kulturelle Angemessenheit erfordert menschliche Überprüfung

FAQ

Was ist der Unterschied zwischen Übersetzung und Sprachanpassung?

Übersetzung konvertiert Text von einer Sprache in eine andere. Sprachanpassung geht weiter, indem sie Grammatik (Pluralformen, Genus), Formatierung (Datumsangaben, Zahlen, Währungen), UI-Layout (RTL-Unterstützung, Textexpansion) und kulturellen Kontext (Formalitätsstufen, Farbbedeutungen, Redewendungen) anpasst, um für jede Locale ein natürliches Nutzererlebnis zu schaffen.

Wie hilft ICU MessageFormat bei der Sprachanpassung?

ICU MessageFormat ist eine Standardsyntax, die von den meisten i18n-Bibliotheken (react-intl, vue-i18n, better-i18n) unterstützt wird und es Übersetzern ermöglicht, Pluralformen, Genusauswahl und bedingten Text innerhalb eines einzigen Übersetzungsstrings zu behandeln. Statt dass Entwickler If/Else-Logik für die Regeln jeder Sprache schreiben, verfasst der Übersetzer das entsprechende MessageFormat-Muster, und die Bibliothek löst es zur Laufzeit auf.

Benötige ich separate Codebasen für RTL-Sprachen?

Nein. Moderne CSS logical properties (margin-inline-start, padding-block-end usw.) und das dir="rtl" HTML-Attribut behandeln die meisten RTL-Layouts automatisch. Der Schlüssel liegt darin, von Beginn des Projekts an hardcodierte Richtungswerte wie margin-left zugunsten logischer Äquivalente zu vermeiden.

Comments

Loading comments...