feat(studio): localise Settings sidebar + add inline help docs + Approvals doc
Some checks failed
Security / Security check (push) Failing after 1s

Three operator-UX gaps closed:

  - Settings dialog's six-category sidebar (General / Appearance /
    System AI / Integrations / Security / Maintenance) was
    hardcoded English; now flows through AppLocalizations
    ("Allgemein" / "Darstellung" / "System-KI" / "Integrationen" /
    "Sicherheit" / "Wartung"). Same for the per-panel title +
    description.
  - Per-channel daemon-action labels ('enable autostart' /
    'disable autostart' / 'daemon restart' etc.) and the
    OK / Failed result line in the toast also moved to l10n,
    so the system-action feedback reads as one language.
  - New 'Approvals' doc bundle (en + de) under assets/docs/,
    registered as a fifth doc card on Welcome plus exposed via
    the new public  helper. The
    Approvals, Audit and Doctor app-bars grow a Help icon button
    next to Refresh that opens the matching doc in the existing
    bottom-sheet reader — no extra screen, no learning curve.

Studio bumped to 0.67.0; editor path-override pulls in 0.20.1
(flow-list row polish).

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-06-09 01:57:46 +02:00
parent 2be7d241bf
commit 28fafce7dc
15 changed files with 681 additions and 36 deletions

View file

@ -101,6 +101,16 @@ class AppLocalizationsDe extends AppLocalizations {
String get welcomeDocFlowsBlurb =>
'YAML-Grundlagen, Templating-Referenz, das Extract→Summarize-Beispiel.';
@override
String get welcomeDocApprovalsTitle => 'Freigaben';
@override
String get welcomeDocApprovalsBlurb =>
'Human-in-the-Loop-Checkpoints — wann nutzen, wie das Audit-Log sie protokolliert.';
@override
String get helpTooltip => 'Hilfe';
@override
String get welcomeDocClose => 'Schließen';
@ -2323,6 +2333,89 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get doctorPathStudioErrors => 'Studio-Fehler';
@override
String get settingsCategoryGeneral => 'Allgemein';
@override
String get settingsCategoryAppearance => 'Darstellung';
@override
String get settingsCategoryAi => 'System-KI';
@override
String get settingsCategoryIntegrations => 'Integrationen';
@override
String get settingsCategorySecurity => 'Sicherheit';
@override
String get settingsCategoryMaintenance => 'Wartung';
@override
String get settingsAiPanelTitle => 'System-KI';
@override
String get settingsAiPanelBody =>
'Operator-verwalteter LLM-Endpunkt, den Studio für die KI-Helfer nutzt (System-KI-Edit, Install-Vorschläge, Doctor-Zusammenfassung). Kein Flow ruft das jemals auf; Module sprechen mit ihrem eigenen LLM.';
@override
String get settingsIntegrationsPanelTitle => 'Integrationen';
@override
String get settingsIntegrationsPanelBody =>
'Externe Tool-Server, deren Capabilities der Hub föderiert. MCP-Server bieten Tool-Endpunkte; n8n-Endpunkte stellen gehostete Workflows bereit.';
@override
String get settingsSecurityPanelTitle => 'Sicherheit & Zugangsdaten';
@override
String get settingsSecurityPanelBody =>
'Tokens, die der Hub für dich verwahrt. Liegen in ~/.fai/ mit Modus 0600; werden nie als Telemetrie versendet.';
@override
String get settingsMaintenancePanelTitle => 'Wartung';
@override
String get settingsMaintenancePanelBody =>
'Destruktive Aktionen, abgesichert durch explizite Bestätigungs-Dialoge. Nutzen z.B. beim Re-Pilot-Testen oder Debuggen.';
@override
String get tooltipMoveUp => 'Nach oben';
@override
String get tooltipMoveDown => 'Nach unten';
@override
String get tooltipRemove => 'Entfernen';
@override
String get daemonActionEnableAutostart => 'Autostart aktivieren';
@override
String get daemonActionDisableAutostart => 'Autostart deaktivieren';
@override
String get daemonActionRestart => 'Daemon neu starten';
@override
String get daemonActionStart => 'Daemon starten';
@override
String get daemonActionStop => 'Daemon stoppen';
@override
String get daemonActionStatus => 'Daemon-Status';
@override
String daemonActionResultOk(String label) {
return 'OK · $label';
}
@override
String daemonActionResultFailed(String label) {
return 'Fehlgeschlagen · $label';
}
@override
String get addSourceTitle => 'Modul-Quelle hinzufügen';