From 7888b71f63241629e1893fa5fdc255e1816b470c Mon Sep 17 00:00:00 2001 From: flemming-it Date: Mon, 13 Jul 2026 01:26:33 +0200 Subject: [PATCH] fix(l10n): align the stores dialog with the setup trust hint (Sie-form, plain language) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The regulated setup path sends the operator to the stores dialog to pin a publisher key — but the field was labelled 'Angepinnter Public-Key — PEM (optional)' with du-form developer prose (PEM, vendor key) at exactly the trust-critical moment. Field now reads 'Signatur-Schlüssel anheften (PEM, optional)' with a plain-language Sie-form explanation of what pinning does; the dialog intro and the onboarding checklist follow (MCP jargon explained in the sentence, developer-only follow-up cards labelled as such). Signed-off-by: flemming-it --- lib/l10n/app_de.arb | 12 ++++++------ lib/l10n/app_en.arb | 4 ++-- lib/l10n/app_localizations.dart | 4 ++-- lib/l10n/app_localizations_de.dart | 12 ++++++------ lib/l10n/app_localizations_en.dart | 5 ++--- 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 5fff810..c29d29b 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -75,7 +75,7 @@ "welcomeChecklistAi": "System-KI konfigurieren", "welcomeChecklistAiHint": "Einstellungen → System-KI. Wird für die KI-Suche und Fehlererklärungen gebraucht.", "welcomeChecklistMcp": "Öffentliche Capability-Quelle hinzufügen", - "welcomeChecklistMcpHint": "Im Store eine MCP-Quelle hinzufügen oder unter Einstellungen → MCP-Clients konfigurieren.", + "welcomeChecklistMcpHint": "Verbindet einen öffentlichen Werkzeug-Katalog (MCP) — dessen Bausteine erscheinen dann im Store. Dort hinzufügen oder unter Einstellungen → MCP-Clients.", "welcomeChecklistModule": "Ein Text-Modul installieren", "welcomeChecklistModuleHint": "Im Store ein Modul aus der Kategorie Ihrer Wahl installieren. Module sind isolierte (sandboxed) Ch∆In-Komponenten.", "welcomeChecklistFlow": "Einen gespeicherten Flow starten", @@ -349,7 +349,7 @@ "storeReloadTooltip": "Aktualisieren", "storesManagerButton": "Store hinzufügen", "storesManagerTitle": "Module-Stores", - "storesManagerIntro": "Der Hub führt die Module aller Stores unten zu einem Index zusammen. Füge die Index-URL eines Stores hinzu, damit seine Module hier installierbar werden.", + "storesManagerIntro": "Der Hub führt die Module aller Stores unten zu einem Index zusammen. Fügen Sie die Index-URL eines Stores hinzu, damit seine Module hier installierbar werden.", "storesManagerAddSection": "Store hinzufügen", "storesManagerNameLabel": "Name", "storesManagerUrlLabel": "Index-URL (https:// oder file://)", @@ -360,8 +360,8 @@ "storesManagerRemoveFailed": "Store konnte nicht entfernt werden", "storesManagerSuggested": "Vorgeschlagene Stores", "storesManagerAddShort": "Hinzufügen", - "storesManagerPinnedKeyLabel": "Angepinnter Public-Key — PEM (optional)", - "storesManagerPinnedKeyHint": "Signierte Module dieses Stores werden gegen diesen Key geprüft statt gegen den eingebauten Vendor-Key. Füge einen PEM-Public-Key ein.", + "storesManagerPinnedKeyLabel": "Signatur-Schlüssel anheften (PEM, optional)", + "storesManagerPinnedKeyHint": "Nur Module, die mit diesem Schlüssel signiert sind, werden aus dieser Quelle angenommen. Fügen Sie den öffentlichen Schlüssel (PEM) des Herausgebers ein — statt des eingebauten Herstellerschlüssels.", "storesManagerNotAvailable": "Noch nicht verfügbar", "storesManagerNotAvailableHint": "Der Anbieter hat diesen Store-Index noch nicht veröffentlicht. Sobald er das tut, ist er installierbar.", "storesSuggestedReclaimDesc": "Recl∆Im — Module für Rechts- und Pflichten-Reform-Mapping", @@ -892,10 +892,10 @@ "welcomeChecklistNextAuditBody": "Jede Installation, jeder Flow-Lauf, jede Freigabe landet im hash-verketteten Protokoll. Im Protokoll-Tab sehen Sie, was Ihr Hub gemacht hat.", "welcomeChecklistNextAuditButton": "Protokoll öffnen", "welcomeChecklistNextTodayTitle": "Daily-Today-Story einrichten", - "welcomeChecklistNextTodayBody": "tools/today/propose.sh per Cron laufen lassen und die Editorial-Karte im Store füllt sich mit operator-kuratierten Stories.", + "welcomeChecklistNextTodayBody": "Für Fortgeschrittene: das Skript tools/today/propose.sh regelmäßig (Cron) laufen lassen — die Editorial-Karte im Store füllt sich dann mit kuratierten Stories.", "welcomeChecklistNextTodayButton": "Today-Doku öffnen", "welcomeChecklistNextModuleTitle": "Eigenes Modul bauen", - "welcomeChecklistNextModuleBody": "Mit `chain new module ` ein Rust+WASM-Gerüst erzeugen. Das module-sdk übernimmt die WIT-Anbindung; Sie schreiben nur ein typisiertes invoke.", + "welcomeChecklistNextModuleBody": "Für Entwickler: Mit `chain new module ` entsteht ein fertiges Modul-Gerüst (Rust+WASM). Das module-sdk übernimmt die technische Anbindung; Sie schreiben nur die eigentliche Logik.", "welcomeChecklistNextModuleButton": "Doku lesen", "auditGroupToday": "HEUTE", "auditGroupYesterday": "GESTERN", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 3fd3e84..e56e517 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -378,8 +378,8 @@ "storesManagerRemoveFailed": "Could not remove store", "storesManagerSuggested": "Suggested stores", "storesManagerAddShort": "Add", - "storesManagerPinnedKeyLabel": "Pinned public key — PEM (optional)", - "storesManagerPinnedKeyHint": "Signed modules from this store verify against this key instead of the built-in vendor key. Paste a PEM public key.", + "storesManagerPinnedKeyLabel": "Pin a signing key (PEM, optional)", + "storesManagerPinnedKeyHint": "Only modules signed with this key are accepted from this source. Paste the publisher's public key (PEM) — used instead of the built-in vendor key.", "storesManagerNotAvailable": "Not available yet", "storesManagerNotAvailableHint": "The provider hasn't published this store index yet. It will become installable once they do.", "storesSuggestedReclaimDesc": "Recl∆Im — modules for law & duty reform-mapping", diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 3a7f9ad..f90f664 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1685,13 +1685,13 @@ abstract class AppLocalizations { /// No description provided for @storesManagerPinnedKeyLabel. /// /// In en, this message translates to: - /// **'Pinned public key — PEM (optional)'** + /// **'Pin a signing key (PEM, optional)'** String get storesManagerPinnedKeyLabel; /// No description provided for @storesManagerPinnedKeyHint. /// /// In en, this message translates to: - /// **'Signed modules from this store verify against this key instead of the built-in vendor key. Paste a PEM public key.'** + /// **'Only modules signed with this key are accepted from this source. Paste the publisher\'s public key (PEM) — used instead of the built-in vendor key.'** String get storesManagerPinnedKeyHint; /// No description provided for @storesManagerNotAvailable. diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 87f56cf..79b055a 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -246,7 +246,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get welcomeChecklistMcpHint => - 'Im Store eine MCP-Quelle hinzufügen oder unter Einstellungen → MCP-Clients konfigurieren.'; + 'Verbindet einen öffentlichen Werkzeug-Katalog (MCP) — dessen Bausteine erscheinen dann im Store. Dort hinzufügen oder unter Einstellungen → MCP-Clients.'; @override String get welcomeChecklistModule => 'Ein Text-Modul installieren'; @@ -869,7 +869,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get storesManagerIntro => - 'Der Hub führt die Module aller Stores unten zu einem Index zusammen. Füge die Index-URL eines Stores hinzu, damit seine Module hier installierbar werden.'; + 'Der Hub führt die Module aller Stores unten zu einem Index zusammen. Fügen Sie die Index-URL eines Stores hinzu, damit seine Module hier installierbar werden.'; @override String get storesManagerAddSection => 'Store hinzufügen'; @@ -907,11 +907,11 @@ class AppLocalizationsDe extends AppLocalizations { @override String get storesManagerPinnedKeyLabel => - 'Angepinnter Public-Key — PEM (optional)'; + 'Signatur-Schlüssel anheften (PEM, optional)'; @override String get storesManagerPinnedKeyHint => - 'Signierte Module dieses Stores werden gegen diesen Key geprüft statt gegen den eingebauten Vendor-Key. Füge einen PEM-Public-Key ein.'; + 'Nur Module, die mit diesem Schlüssel signiert sind, werden aus dieser Quelle angenommen. Fügen Sie den öffentlichen Schlüssel (PEM) des Herausgebers ein — statt des eingebauten Herstellerschlüssels.'; @override String get storesManagerNotAvailable => 'Noch nicht verfügbar'; @@ -1640,7 +1640,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get welcomeChecklistNextTodayBody => - 'tools/today/propose.sh per Cron laufen lassen und die Editorial-Karte im Store füllt sich mit operator-kuratierten Stories.'; + 'Für Fortgeschrittene: das Skript tools/today/propose.sh regelmäßig (Cron) laufen lassen — die Editorial-Karte im Store füllt sich dann mit kuratierten Stories.'; @override String get welcomeChecklistNextTodayButton => 'Today-Doku öffnen'; @@ -1650,7 +1650,7 @@ class AppLocalizationsDe extends AppLocalizations { @override String get welcomeChecklistNextModuleBody => - 'Mit `chain new module ` ein Rust+WASM-Gerüst erzeugen. Das module-sdk übernimmt die WIT-Anbindung; Sie schreiben nur ein typisiertes invoke.'; + 'Für Entwickler: Mit `chain new module ` entsteht ein fertiges Modul-Gerüst (Rust+WASM). Das module-sdk übernimmt die technische Anbindung; Sie schreiben nur die eigentliche Logik.'; @override String get welcomeChecklistNextModuleButton => 'Doku lesen'; diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 9313e75..a1425a0 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -925,12 +925,11 @@ class AppLocalizationsEn extends AppLocalizations { String get storesManagerAddShort => 'Add'; @override - String get storesManagerPinnedKeyLabel => - 'Pinned public key — PEM (optional)'; + String get storesManagerPinnedKeyLabel => 'Pin a signing key (PEM, optional)'; @override String get storesManagerPinnedKeyHint => - 'Signed modules from this store verify against this key instead of the built-in vendor key. Paste a PEM public key.'; + 'Only modules signed with this key are accepted from this source. Paste the publisher\'s public key (PEM) — used instead of the built-in vendor key.'; @override String get storesManagerNotAvailable => 'Not available yet';