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, …
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: 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.