Zum Inhalt

Internationalisierung (i18n)

Rezeptor unterstützt Deutsch und Englisch im Launcher; weitere Sprachen sind modular ergänzbar.

Launcher (GUI)

Pfad Rolle
launcher/locales/de.json Deutsche Strings
launcher/locales/en.json Englische Strings (Fallback)
launcher/locales/manifest.json Liste verfügbarer Locales
launcher/i18n/ t(key), set_locale(), Loader

Fallback-Kette: aktive Locale → en → Key-Name.

Einstellungen: Rezeptor → Einstellungen → Sprache. Beim ersten Start: System-$LANG (de* → de, sonst en).

Neue Sprache hinzufügen

  1. launcher/locales/fr.json anlegen (Keys wie in en.json).
  2. Eintrag in launcher/locales/manifest.json:
    {"id": "fr", "name": "Français"}
    
  3. Rezeptor neu starten — die Sprache erscheint in den Einstellungen.

Keys sind hierarchisch: menu.launch, tab.overview, update.btn_auto, error.E_TRUST_MANIFEST, …

Rezept-Beschreibungen

Pro Rezept unter recipes/<id>/:

  • info.de.txt — Deutsch
  • info.en.txt — Englisch

Der Launcher wählt info.{locale}.txt, dann info.en.txt, dann info.de.txt.

Nach Änderungen: ./scripts/recipe-manifest.sh.

Entwickler-Dokumentation

Doku liegt sprachgetrennt unter docs/:

Ordner Sprache
docs/de/ Deutsch
docs/en/ English

Gleiche Dateinamen in beiden Ordnern (README.md, RECIPE-AUTHORING.md, …).
Links relativ im gleichen Ordner halten — z. B. [RECIPE-AUTHORING.md](RECIPE-AUTHORING.md), nicht ../en/….

MkDocs-Site: Sprachumschalter DE/EN (mkdocs-static-i18n, Ordnerstruktur).

Startseite: index.md

Shell-Skripte

Quelle der Wahrheit: core/i18n.sh lädt core/locales/de.lang / en.lang (Install-Pipeline).
scripts/locales/ ist eine Spiegelkopie — bei Änderungen beide Bäume sync halten.
Launcher und Shell teilen keine Dateien — gleiche Key-Idee, unterschiedliche Formate (JSON vs. .lang).

Fehlercodes (Launcher)

launcher/log_context.py definiert stabile Codes, z. B.:

Code Bedeutung
E_TRUST_MANIFEST Manifest-Hash stimmt nicht
E_UPDATE_APPLY Auto-Update fehlgeschlagen
E_UPDATE_ROLLBACK Rollback fehlgeschlagen
E_LAUNCH_NO_PROCESS App nach Start nicht aktiv
E_SCRIPT_FAILED Hook-Skript Exit ≠ 0

Anzeige über t("error.<CODE>") + technisches Detail im Vorgang/Log.