Alle ArtikelEntwicklung2 Min. Lesezeit

Uptime in 13 Sprachen: mehr als Übersetzen

Von Sprach-URLs über Mehrzahlformen bis zu Arabisch und Urdu von rechts nach links: was dazugehört, eine Oberfläche wirklich mehrsprachig zu machen.

Zwei Globen

Uptime gibt es in 13 Sprachen: Deutsch, Englisch, Spanisch, Französisch, brasilianisches Portugiesisch, Russisch, Japanisch, vereinfachtes Chinesisch, Arabisch, Hindi, Indonesisch, Bengalisch und Urdu. Texte zu übersetzen ist der kleinste Teil dieser Arbeit.

Ein Katalog für alle

Alle Oberflächentexte stehen in einem gemeinsamen Katalog, den Frontend und Backend lesen. Ein automatischer Test stellt sicher, dass jede Sprache jeden Text hat, dass Platzhalter wie ein Name oder eine Zahl in jeder Übersetzung vorkommen und dass keine Sprache eine Mehrzahlform vergisst. Fehlt etwas, schlägt der Test fehl, bevor ein Nutzer eine leere Stelle sieht.

Mehrzahl ist nicht gleich Mehrzahl

Im Deutschen und Englischen gibt es zwei Formen: „1 Monitor“ und „2 Monitore“. Andere Sprachen unterscheiden mehr. Das Unicode-Regelwerk CLDR kennt sechs Kategorien: zero, one, two, few, many und other. Die Browser-Funktion Intl.PluralRules liefert für jede Sprache, welche davon sie braucht:

  • Japanisch, Chinesisch und Indonesisch: nur eine Form (other).
  • Deutsch, Englisch, Hindi, Bengalisch und Urdu: zwei Formen (one, other).
  • Spanisch, Französisch und Portugiesisch: one, many und other.
  • Russisch: one, few, many und other.
  • Arabisch: alle sechs.

Deshalb steht jeder Text mit Zahl bei uns in allen sechs Kategorien im Katalog, und ein Test prüft, dass jede Sprache die Formen übersetzt, die ihre Grammatik tatsächlich verwendet. Ein „1 Monitoren“ oder „5 Monitor“ soll gar nicht erst entstehen.

Eine Adresse pro Sprache

Öffentliche Seiten haben für jede Sprache eine eigene Adresse, etwa /de/ oder /pt-br/, auch für Englisch (/en/). Der Build erzeugt jede Sprachversion als fertige Seite mit dem richtigen lang-Attribut, einem Titel und einer Beschreibung in dieser Sprache, einem Canonical-Link auf sich selbst und Verweisen (hreflang) auf alle anderen Fassungen. Suchmaschinen können so jede Sprache einzeln finden und der passenden Zielgruppe zeigen. Dazu gibt es eine Sitemap.

Die Adresse ohne Sprache leitet weiter: zuerst nach der Sprache, die du ausdrücklich gewählt hast, sonst nach der Sprache deines Browsers, sonst auf Englisch. Die Seiten innerhalb der App, etwa Dashboard und Einstellungen, behalten ihre Adressen ohne Sprachkürzel und sind für Suchmaschinen nicht vorgesehen.

Arabisch und Urdu: von rechts nach links

Arabisch und Urdu werden von rechts nach links geschrieben. Es genügt nicht, den Text zu übersetzen: Die ganze Seite wird gespiegelt, wenn das dir-Attribut auf rtl steht. Das W3C empfiehlt dafür das Attribut im HTML statt CSS. Damit auch Abstände und Ausrichtungen mitspielen, verwenden wir in unseren Stilen „logische“ Eigenschaften wie Anfang und Ende statt links und rechts. Dann passt sich jede Fläche der Leserichtung an, ohne dass es zwei Stylesheets gibt.

Stand der längeren Texte

Die Oberfläche der App ist in allen 13 Sprachen vorhanden. Längere Texte wie diese Artikel gibt es bisher auf Deutsch und Englisch; in den anderen Sprachen erscheint die englische Fassung, bis es eine Übersetzung gibt.