test(i18n): Waechter gegen neue Umlaut-Ersatzschreibweisen

Legt umlaut-guard.spec.ts an, das ausschliesslich das geparste JSON
von de.json/en.json liest (nie repo-weit ueber Quelldateien greift,
sonst schluege es am Woerterbuch selbst an) und drei Dinge prueft:
kein Token aus UMLAUT_REPLACEMENTS mehr in de.json, jedes verbliebene
ae/oe/ue/ss-Token steht auf UMLAUT_ALLOWLIST, und de.json/en.json
haben denselben Schluesselsatz. Manuell mit einem probeweise
eingefuegten "fuer" verifiziert: Meldung nennt "für" und den
Schluesselpfad, danach zurueckgenommen.

Beim Aufbau des Waechters kamen zwei Luecken der Task-1-Wortliste ans
Licht: "Bestaetigen" (Grossschreibung, common.confirm) fehlte in
UMLAUT_REPLACEMENTS und blieb faelschlich falsch geschrieben; die
Ersetzungen zu Passwoerter/vertrauenswuerdigen/ausschliessen/
entschluesselt ergeben nach der Korrektur korrektes Deutsch, das aber
weiterhin ae/oe/ue/ss enthaelt und deshalb auf UMLAUT_ALLOWLIST
ergaenzt werden musste. Beide Luecken behoben (Rule 1 - Bug).

pnpm --filter @tessera/web test: 38 Testdateien, 225 Tests gruen.
pnpm --filter @tessera/web run type-check: sauber.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
This commit is contained in:
2026-09-07 13:06:25 +02:00
parent 3d351c6a99
commit caa4827360
3 changed files with 104 additions and 1 deletions
@@ -59,6 +59,7 @@ export const UMLAUT_REPLACEMENTS: Record<string, string> = {
Zusammenfuehren: 'Zusammenführen',
zusammenfuehren: 'zusammenführen',
bestaetigen: 'bestätigen',
Bestaetigen: 'Bestätigen',
Passwoerter: 'Passwörter',
spaeter: 'später',
ueberein: 'überein',
@@ -157,4 +158,8 @@ export const UMLAUT_ALLOWLIST: readonly string[] = [
'Fasst',
'Verschlüsselung',
'empfaenger',
'Passwörter',
'vertrauenswürdigen',
'ausschließen',
'entschlüsselt',
];