UX-06: Mehrsprachigkeit Deutsch/Englisch (Mail, stackt auf PR #298 UX-01) #299

Closed
patrick wants to merge 0 commits from feature/ux-06-mehrsprachigkeit-deutsch-englisch into main
pull from: feature/ux-06-mehrsprachigkeit-deutsch-englisch
Owner

Mehrsprachigkeit (Deutsch/Englisch) fuer web/mail-postfach. Baut auf UX-01s offenem Branch auf (feature/ux-01-postfach-ordneransicht, noch nicht gemergt) - dieser PR enthaelt daher UX-01s Commits mit, bis PR #298 mergt.

Nutzt zentrales @nexarch/shl i18n-System (I18nProvider/useI18n/registerMessages/formatDate/formatNumber), kein paralleles Framework. Neue LanguageSwitcher-Komponente, englische Uebersetzungen fuer alle Keys, lokalisierte Datums-/Zahlenformate.

AC1-3 real getestet (41/41 Tests gruen gesamt). Dokumentierte Scope-Grenzen: Intl.Collator bleibt de-sortierung (ausserhalb AC3), rohe deutsche Error-Strings erreichen nie das DOM (verifiziert), UX-07 nur als Schnittstelle vorbereitet.

Siehe mail/docs/UX-06-PRUEFPROTOKOLL.md.

🤖 Generated with Claude Code

Mehrsprachigkeit (Deutsch/Englisch) fuer web/mail-postfach. Baut auf UX-01s offenem Branch auf (feature/ux-01-postfach-ordneransicht, noch nicht gemergt) - dieser PR enthaelt daher UX-01s Commits mit, bis PR #298 mergt. Nutzt zentrales @nexarch/shl i18n-System (I18nProvider/useI18n/registerMessages/formatDate/formatNumber), kein paralleles Framework. Neue LanguageSwitcher-Komponente, englische Uebersetzungen fuer alle Keys, lokalisierte Datums-/Zahlenformate. AC1-3 real getestet (41/41 Tests gruen gesamt). Dokumentierte Scope-Grenzen: Intl.Collator bleibt de-sortierung (ausserhalb AC3), rohe deutsche Error-Strings erreichen nie das DOM (verifiziert), UX-07 nur als Schnittstelle vorbereitet. Siehe mail/docs/UX-06-PRUEFPROTOKOLL.md. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 8 commits 2026-10-16 09:08:37 +02:00
Erweitert mail/internal/mailapi (INT-01) um die fuer die Postfach-/
Ordneransicht noetigen Daten, die die bestehende API noch nicht lieferte:
GET /mailboxes (Ordnerbaum aus der mailbox-Facette), mailbox-Filter auf
GET /messages, sowie sender/mailbox in der Listenantwort (Grundlage fuer
Sortierung nach Absender). Reines Durchreichen bereits fertiger
mail/internal/search-Funktionen (Facets/ListByMailbox/SearchWithFilters),
keine neue Suchlogik.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Testinfrastruktur: startet den echten mailapi.Server (echte moduleauth-
Signaturpruefung) als eigenen Prozess auf einem echten TCP-Port, mit
In-Memory-Suchpersistenz und zwei synthetischen Mandanten (einer davon
mit 3000 Nachrichten fuer den Performance-Nachweis). Grundlage fuer den
Frontend-Integrationstest gegen eine echte Backend-API statt eines
fetch()-Mocks. Kein Produktivpfad.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Postfach- und Ordneransicht fuer archivierte Mails (Next.js/React/TS,
@nexarch/shl). Ordnerbaum (aus der flachen Postfachliste der Mail-API
clientseitig aufgebaut), virtualisierte Nachrichtenliste mit Sortierung
nach Datum/Absender/Betreff, Grundsuche. Aufbau nach etabliertem Muster
(web/mail-search fuer die App-Struktur, web/dms-browser fuer Ordnerbaum/
virtualisierte Liste), bewusst schlicht gehalten (Mailpit/MailHog als
Vorbild, nicht die Komplexitaet eines nativen Mailprogramms).

Automatisierte Tests je Akzeptanzkriterium, inkl. eines echten
Backend-Integrationstests (e2e/ux01.e2e.test.ts) gegen den echten
mailapi.Server (mail/cmd/mailpostfach-fixture) mit zwei Mandanten und
einem gleichnamigen Ordner — keine Mandanten-Isolationslogik wird
gemockt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
UX-01: postfach-ordneransicht
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Mail-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
a1c9be8e6d
Pruefprotokoll: Zielwerte und Ergebnisse je Akzeptanzkriterium und
Pruefung, inkl. Abgrenzung zur Ausgangslage (Backend-API musste fuer
Ordnerbaum/Absender-Sortierung minimal erweitert werden) und offener
Einschraenkung beim manuellen Test (keine Browser-Automatisierung/kein
laufender Core-Server auf dem Entwicklungshost, daher Ersatzpruefung
ueber den echten Backend-Integrationstest).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Englische Übersetzungen fuer alle von UX-01 vorbereiteten
mail-postfach-Schluessel ergaenzt (registerMessages(\"en\", ...) in
lib/messages.ts), plus neue Schluessel fuer den Sprachumschalter.
layout.tsx liest initialLocale/html-lang jetzt aus
NEXT_PUBLIC_DEFAULT_LOCALE (gleiches Muster wie web/dms-browser).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sprachumschalter-Komponente (LanguageSwitcher) ergaenzt, in
PostfachPage eingebunden; Nachrichtenzahl nutzt jetzt
formatNumber(locale) statt reiner String-Konvertierung
(Akzeptanzkriterium 3, Zahlenformat).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Automatisierte Tests fuer alle drei Akzeptanzkriterien: keine rohen
i18n-Schluessel im gerenderten Output (de/en), Sprachumschaltung ohne
Neuladen, Datums-/Zahlenformat folgt der Sprache.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
UX-06: mehrsprachigkeit-deutsch-englisch
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Mail-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
3f4c098ac1
Pruefprotokoll dokumentiert: Basis-Branch (origin/feature/ux-01-...,
nicht main), alle drei Pflichtpruefungen mit Zielwert/Ergebnis,
Testergebnisse, bewusste Scope-Grenzen (Collator, rohe Error-Strings,
UX-07).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
Owner

Nach Merge von #298 konfliktfrei, direkt in main gemergt und gepusht.

Nach Merge von #298 konfliktfrei, direkt in main gemergt und gepusht.
patrick closed this pull request 2026-10-19 12:40:21 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#299