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¶
launcher/locales/fr.jsonanlegen (Keys wie inen.json).- Eintrag in
launcher/locales/manifest.json: - Rezeptor neu starten — die Sprache erscheint in den Einstellungen.
Keys sind hierarchisch: menu.launch, tab.overview, update.btn_auto, error.E_TRUST_MANIFEST, …
Key-Parity-Check (CI)¶
Vergleicht die abgeflachten Key-Sets von launcher/locales/de.json und en.json.
Unterschiedliche Übersetzungen sind ok; fehlende oder nur in einer Sprache vorhandene Keys lassen den Check fehlschlagen.
Aktuell nur der Launcher-JSON-Baum (aktuell ~780+ Keys). Nicht abgedeckt: Rezept-info.*.txt (manuell DE/EN pflegen).
Rezept-Beschreibungen¶
Pro Rezept unter recipes/<id>/:
info.de.txt— Deutschinfo.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: msg::t / msg::_lookup in core/i18n.sh (festes case für DE/EN, gesteuert über RECIPE_UI_LANG).
Es gibt keine externen .lang-Dateien mehr (Legacy-Bäume core/locales/ und scripts/locales/ entfernt).
Launcher-JSON und Shell-msg::t teilen keine Dateien — getrennte Systeme.
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.