PDNS Manager

Mehrsprachigkeit

Ab Werk versteht der PDNS Manager sechs Sprachen: Deutsch, Englisch, Serbisch, Kroatisch, Bosnisch und Ungarisch. Jede dieser Sprachen hat aktuell 770 Übersetzungs-Keys – Stand v2.3.7 ist das Set in allen Sprachen vollständig synchronisiert.

Sprache wechseln

Im Header gibt es ein Sprach-Dropdown mit Flaggen-Emojis. Die Auswahl wird im Browser persistiert (localStorage), funktioniert also auch ohne Login.

Default-Sprache setzen

In der .env:

DEFAULT_LANGUAGE=de

Das wirkt für jeden Besucher, der noch keine eigene Wahl getroffen hat (z. B. inkognito oder neuer Browser).

Fallback-Verhalten

Wenn ein Übersetzungs-Key in der gewählten Sprache fehlt, greift die UI auf Englisch zurück. Das passiert automatisch und transparent – du bekommst nirgendwo einen leeren String oder ein null.

In der Praxis tritt das fast nie auf, weil das Sync-Skript (siehe unten) dafür sorgt, dass alle Sprachen die gleichen Keys haben. Aber als Sicherheitsnetz für PRs ist es eingebaut.

Neue Sprache beisteuern

  1. frontend/src/locales/en.json als Vorlage kopieren, z. B. nach it.json.
  2. Werte übersetzen, Keys nicht anfassen.
  3. In frontend/src/i18n.js einen Eintrag in LANGUAGES (Code, Label, Flag-Emoji) und im resources-Block ergänzen.
  4. Pull Request aufmachen.

Übersetzungen pflegen (Maintainer)

frontend/src/locales/en.json ist die Source of Truth. Wenn du in einem PR neue Keys einbaust, vor dem Commit:

node scripts/sync-locales.mjs

Was das Skript macht:

  • Ergänzt fehlende Keys in allen anderen Sprachen mit dem englischen Wert (Fallback).
  • Entfernt Keys, die nicht mehr in en.json existieren.
  • Listet pro Datei auf, was hinzugefügt/entfernt wurde.
  • Lässt bestehende Übersetzungen unangetastet.

Wo wird übersetzt, wo nicht

  • Übersetzt: alle UI-Strings (Buttons, Labels, Hilfetexte, Fehlermeldungen, Mail-Templates).
  • Nicht übersetzt: technische Bezeichner wie Record-Typen (A, AAAA, …) – das sind RFC-Begriffe und sollen sprachneutral bleiben.