test(frontend): Wächter gegen deutschen Oberflächentext – und fünf Reste

Konsolidierung: Bestandsaufnahme auf den Stand vom 24.09. gebracht (Punkte 1,
2, 2b und die Tests für documents/tags sind erledigt; sharing, rescan, audit
und thumbnails bleiben offen; jsdom ist seit dem 18.09. drin).

Beim Nachsehen fielen fünf Übersetzungsreste auf: label="Ganztägig",
aria-label="Kalendermenü", label="Bearbeiten" und zweimal "Löschen". Alle in
**doppelt** gequoteten JSX-Attributen – die Ersetzungsliste hatte nur die
einfach gequoteten, und das damalige Prüfskript hielt Einzelwörter ohne
Leerzeichen für Bezeichner.

Die Prüfung steht deshalb jetzt als Test, nicht als Skript. Sie läuft bei
jedem npm test mit.

Der erste Wächter taugte nichts, und das kam nur durch die Mutation heraus: Er
prüfte allein auf Umlaute und liess "Papierkorb ist leer" durch. Wer einen
Wächter baut, muss ihn einmal angreifen. Jetzt Umlaute plus eine Wortliste mit
Wortgrenzen, nachgewiesen an vier Mutationen.

Kommentare werden vorher entfernt – mit einem kleinen Durchlauf statt
zeilenweise: Blockkommentare haben Fortsetzungszeilen ohne führenden Stern,
die beim ersten Versuch fünf Fehlalarme erzeugten.

Ehrlich dazu: Das ist ein Netz, kein Beweis. Ein deutscher Satz ohne Umlaut
und ohne gelistetes Wort käme durch. Steht so im Test.

@types/node kam dazu, weil der Test den Quelltext von der Platte liest.

Geprüft: tsc sauber, 48 Vitest-Tests, alle 234 Prüfungen der sieben
Selbsttest-Suiten grün. Gebautes Bündel gegengeprüft – deutsche Texte weg,
englische da.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-09-24 18:31:18 +02:00
1 parent e1259dd55c
commit a7528d7365
8 files changed
+261 -15

No files matched your search

+40
View File
@@ -1562,6 +1562,46 @@ bleibt `node` (schnell); wer ein DOM braucht, schreibt
---
## Ein Wächter für die Sprache (24.09.2026)
Sechs Tage nach der Übersetzung fielen beim Nachsehen **fünf Reste** auf:
`label="Ganztägig"`, `aria-label="Kalendermenü"`, `label="Bearbeiten"` und
zweimal `"Löschen"`. Alle in **doppelt** gequoteten JSX-Attributen – die
Ersetzungsliste hatte nur die einfach gequoteten, und das damalige Prüfskript
hielt Einzelwörter ohne Leerzeichen für Bezeichner.
Deshalb steht die Prüfung jetzt als Test (`src/sprache.test.ts`) statt als
Skript, das man einmal laufen lässt. Sie läuft bei jedem `npm test` mit.
**Der erste Wächter taugte nichts, und das kam nur durch die Mutation heraus:**
Er prüfte allein auf Umlaute und liess `"Papierkorb ist leer"` anstandslos
durch. Wer einen Wächter baut, muss ihn einmal angreifen.
Jetzt: Umlaute **plus** eine Liste häufiger deutscher Wörter mit Wortgrenzen
(sonst schlägt "ist" in "list" an). Kommentare werden vorher entfernt – und
zwar richtig, mit einem kleinen Durchlauf statt zeilenweise: Blockkommentare
haben Fortsetzungszeilen ohne führenden Stern, die beim ersten Versuch fünf
Fehlalarme erzeugt haben.
Nachgewiesen an vier Mutationen, alle werden rot:
| eingeschleuster Text | erkannt an |
|---|---|
| `Papierkorb ist leer` | "ist", "leer" |
| `Loeschen fehlgeschlagen` | "Loeschen", "fehlgeschlagen" |
| `Ganztägig` | Umlaut |
| `Bitte warten` | "bitte" |
> **Ein Netz, kein Beweis.** Ein deutscher Satz ohne Umlaut und ohne eines der
> gelisteten Wörter käme durch – "Datum bereits vergeben" etwa. Der Test
> fängt, was erfahrungsgemäß passiert: ein vergessenes Attribut beim
> Übersetzen. Wer die Liste ergänzt, weil einmal etwas durchgerutscht ist, tut
> genau das Richtige.
- [x] Gebautes Bündel enthält keine deutschen Oberflächentexte mehr –
gegengeprüft, dass die englischen drin sind (sonst prüfte der Grep nur
sich selbst)
## Wochentage und Monate aus `Intl` (20.09.2026)
Sechs handgeschriebene Arrays in drei Dateien, und `Intl` kam im ganzen Projekt