feat(web): native de-CH copy across the site + locale regression guards#159
Merged
Conversation
Re-ran the optimized content audit (C15 native-language lens, LOCALE de-CH,
native-rewrite) on this repo's own German and applied the full rewrite set —
sentences COMPLETELY re-modeled into original Swiss-German product copy, not
word-level swaps. Meaning, claims and every protected technical term (CI/CD,
OWASP, Trust Boundary, Prompt-Injection, file:line, SBOM, RAG, …) preserved;
only the German sentence architecture changed. English strings untouched.
- web/lib/i18n.ts — hero, value-prop, CTAs, nav, trust block, principles,
phases, proof, reports prose: causative "lässt … laufen" and "point-at"
calques rebuilt; terminology canon (kartieren/zuordnen, Prüfbereich, Befund,
Durchlauf, einsetzen, Rechner, Selbst-); "live exposure" → "keine akute
Gefährdung im Betrieb" (claim-faithful, not "rechtliches Risiko").
- web/lib/audit-details.ts — all 13 audits' de blocks re-modeled; jargon-density
chains broken into native sentences with the precise terms kept; genus fixed
("das Audit"); 6 ß→ss.
- 14 ß→ss total, 3 ASCII quote-closers → „…", consistent terminology.
Guards so it can't drift back:
- web/lib/locale-de-ch.test.ts (new) — hard-fails any ß + a morphology-aware
Denglish denylist (mappen/laufen-lassen/deduplizieren/Linse/"der Audit"/…),
scanning both copy files; English source is immune (German inflections only).
- web/lib/i18n.test.ts — replaced the de!==en principle assertion (which
institutionalized translationese) with a presence + locale-validity check.
Verified: typecheck · 48 tests (5 files) · lint · production build all green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dogfooding the optimized content audit (#158): re-ran its C15 native-language lens (LOCALE de-CH, native-rewrite) on this repo's own German and applied the full rewrite set — sentences completely re-modeled into original Swiss-German product copy, not word-swaps. Meaning, claims and every protected technical term preserved; English untouched.
i18n.ts— hero / value-prop / CTAs / nav / trust / principles / phases / proof / reports prose: causative + point-at calques rebuilt, terminology canon applied.audit-details.ts— all 13 audits' de blocks re-modeled, jargon chains broken into native sentences (terms kept), genus fixed.14 ß→ss · 3 ASCII quote-closers → „…" · consistent terminology.
Regression guards so it can't drift back:
locale-de-ch.test.ts(new) — hard-fails any ß + a morphology-aware Denglish denylist across both copy files (English source immune — German inflections only).i18n.test.ts— replaced thede!==enprinciple assertion (institutionalized translationese) with presence + locale-validity.Verified: typecheck · 48 tests (5 files) · lint · production build all green.