From a21dd98924f864978c038d4fe9911f9df6bddfed Mon Sep 17 00:00:00 2001 From: Schalli Date: Mon, 7 Sep 2026 13:41:11 +0200 Subject: [PATCH] docs(260907-ipz): Zusammenfassung fuer Anrede- und Einzahl-Korrektur Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq --- .../260907-ipz-SUMMARY.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 .planning/quick/260907-ipz-anrede-vereinheitlichen-duzen-auf-siezen/260907-ipz-SUMMARY.md diff --git a/.planning/quick/260907-ipz-anrede-vereinheitlichen-duzen-auf-siezen/260907-ipz-SUMMARY.md b/.planning/quick/260907-ipz-anrede-vereinheitlichen-duzen-auf-siezen/260907-ipz-SUMMARY.md new file mode 100644 index 0000000..fc09294 --- /dev/null +++ b/.planning/quick/260907-ipz-anrede-vereinheitlichen-duzen-auf-siezen/260907-ipz-SUMMARY.md @@ -0,0 +1,121 @@ +--- +quick_id: 260907-ipz +subsystem: i18n +tags: [next-intl, icu-plural, de.json, en.json, vitest] + +provides: + - "Vier deutsche Oberflaechentexte auf Sie-Form umgestellt (leere Gruppenliste, Modul-Aktivierungsdialog, Modul-Sperrseite, Marktplatz-Hinweis)" + - "ICU-Plural fuer memberCount/grantCount im Gruppen-Loeschdialog (de + en), behebt falsche Mehrzahl bei genau 1" + - "Mock-Uebersetzer in groups-page.test.tsx kann jetzt ICU-Plural aufloesen (nach Vorbild der select-Aufloesung in grants-matrix.test.tsx)" + - "Neuer Regressionstest fuer den Einzahl-Fall (memberCount: 1, grantCount: 1)" +affects: [] + +actuals: + tokens: 2409 + tasks: 2 + commits: 3 + plan_head_before: 04827a4 + +tech-stack: + added: [] + patterns: + - "ICU-Plural in next-intl-Nachrichten: `{name, plural, one {# Form} other {# Formen}}`, wie bereits bei admin.ldap...resultSummary etabliert" + +key-files: + created: [] + modified: + - apps/web/src/messages/de.json + - apps/web/src/messages/en.json + - "apps/web/src/app/(portal)/admin/groups/groups-page.test.tsx" + - "apps/web/src/app/(portal)/admin/modules/grants/grants-matrix.test.tsx" + - apps/web/src/components/modules/module-access-gate.test.tsx + +key-decisions: + - "Neuer Einzahl-Test wurde angelegt (nicht nur der bestehende Text korrigiert), weil beide bestehenden Loeschdialog-Tests nur mit memberCount:4/grantCount:2 laufen und den Einzahl-Fall nie abgedeckt haetten" + - "Keiner der fuenf bestehenden Test-Fundstellen wurde geloescht — alle wurden auf den neuen Wortlaut nachgezogen" + - "en.json wurde nur fuer den Loeschdialog (Defekt 2) angefasst, nicht fuer die Anrede (Defekt 1) — Englisch kennt die Du/Sie-Unterscheidung nicht" + +requirements-completed: [] + +duration: 12min +completed: 2026-09-07 +status: complete +--- + +# Quick Task 260907-ipz: Anrede vereinheitlichen (Duzen auf Siezen) und Einzahl korrigieren Summary + +**Vier duzende deutsche Texte auf Sie-Form umgestellt und die falsche Mehrzahl im Gruppen-Loeschdialog durch echtes ICU-Plural in de.json/en.json ersetzt.** + +## Performance + +- **Duration:** 12min +- **Commits:** 3 +- **Files changed:** 5 + +## Accomplishments + +### Task 1: Anrede auf Siezen vereinheitlichen (Defekt 1) + +Alle vier bisher duzenden Werte in `apps/web/src/messages/de.json` wurden auf die Sie-Form +umgestellt: + +- `admin.groups.noGroupsBody`: "Legen Sie Ihre erste Gruppe an, um Modulzugriff gezielt zu vergeben." +- `adminModules.activationDialog.body`: "… oder möchten Sie die Freigaben separat konfigurieren?" +- `modules.accessDenied.body`: "Sie haben für dieses Modul keine Freigabe. Wenden Sie sich an Ihren Administrator." +- `marketplace.toastNoAccess`: "Kein Zugriff auf dieses Modul — wenden Sie sich an Ihren Administrator." + +`en.json` blieb fuer diese Aufgabe unveraendert. Die drei betroffenen Testdateien +(`groups-page.test.tsx`, `grants-matrix.test.tsx`, `module-access-gate.test.tsx`) wurden mit +ihren Mock-Nachrichten und der einen betroffenen Zusicherung (Leerzustand-Text in +`groups-page.test.tsx`) auf denselben Wortlaut nachgezogen. Kein Test wurde geloescht. + +**Commit:** `b701617` — fix(260907-ipz): Anrede in vier deutschen Texten auf Siezen umstellen + +### Task 2: Ein-/Mehrzahl im Loeschdialog korrigieren (Defekt 2), TDD + +**RED:** Der Mock-Uebersetzer `resolve()` in `groups-page.test.tsx` wurde um eine +ICU-Plural-Aufloesung erweitert (Regex `/\{(\w+),\s*plural,\s*one\s*\{...\}\s*other\s*\{...\}\}/g`, +nach dem Vorbild der bestehenden `select`-Aufloesung in `grants-matrix.test.tsx`). Ein neuer Test +`'uses singular wording for exactly one member and one module grant'` mit +`impact: { memberCount: 1, grantCount: 1 }` wurde direkt nach dem bestehenden Mehrzahl-Test +eingefuegt. Zu diesem Zeitpunkt trug die Mock-Nachricht noch den alten Wortlaut +(`{memberCount} Mitglieder`), sodass der Test nachweislich rot lief mit dem Rendering +"Diese Gruppe hat 1 Mitglieder und 1 Modul-Freigaben." — exakt der live beobachtete Defekt. +**Commit:** `dee52a2` — test(260907-ipz): failing test fuer Einzahl im Loeschdialog + +**GREEN:** `admin.groups.deleteConfirm.body` wurde in `de.json` und `en.json` auf ICU-Plural +umgestellt (`memberCount` und `grantCount` je mit eigenem `plural`-Argument, Zweige `one`/`other`, +Zahl als `#`), im selben Stil wie das bestehende `admin.ldap.…resultSummary`. Die Mock-Nachricht +in `groups-page.test.tsx` wurde wortgleich nachgezogen. Danach liefen alle 12 Tests in der Datei +gruen — der neue Einzahl-Test, die beiden bestehenden Mehrzahl-Tests und alle uebrigen. +**Commit:** `3746754` — feat(260907-ipz): ICU-Plural fuer Mitglieder- und Freigabenzahl im Loeschdialog + +Kein REFACTOR-Commit war noetig — die Implementierung war bereits minimal. + +## Verification + +- `grep` ueber `de.json` und alle drei Testdateien nach Du-Formen: leer. +- `pnpm --dir apps/web test -- groups-page.test.tsx grants-matrix.test.tsx module-access-gate.test.tsx umlaut-guard.spec.ts` — 4 Testdateien, 26 Tests, alle gruen. +- `pnpm --dir apps/web test` (volle Suite) — **38 Testdateien, 226 Tests, alle gruen.** +- `pnpm --dir apps/web run type-check` — `tsc --noEmit`, keine Fehler, keine Ausgabe. +- Schluesselsatz-Parität `de.json`/`en.json`: 787 Schluessel identisch (Node-Skript, beide Richtungen leer). +- `grep -c 'memberCount, plural'` und `grep -c 'grantCount, plural'`: je genau 1 Treffer in beiden Sprachdateien. + +## Deviations from Plan + +None - plan executed exactly as written. + +## Known Stubs + +None. + +## TDD Gate Compliance + +RED-Commit (`test(260907-ipz): ...`) und GREEN-Commit (`feat(260907-ipz): ...`) sind in dieser +Reihenfolge im Git-Log vorhanden. Kein Gate-Verstoss. + +## Not Yet Verified (Human/Browser) + +Die im Plan genannte Sichtpruefung im Browser (Docker-Rebuild + manuelle Pruefung aller vier +Textstellen plus des Loeschdialogs auf Deutsch und Englisch) wurde bewusst NICHT von diesem +Executor durchgefuehrt — das obliegt laut Ausfuehrungsauftrag dem Orchestrator/User.