fix(header): proper DE|EN language switcher + asset cache-busting #7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/lang-switcher-design"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Was
Der Sprach-Switcher sah live nackt/gestapelt aus. Zwei Ursachen behoben + ordentliches Design (vom Design-Reviewer als Best-Practice bestätigt).
Switcher-Design (Variante B — Inline Text-Toggle)
DE | ENmit Hairline-Divider (zitiert denPL |-Logo-Trenner). Aktive Sprache Ink/dunkel (nicht blau → konkurriert nicht mit dem „Termin buchen"-CTA), inaktive grau → Akzent-Blau im Hover. ≥44px Touch-Targets,:focus-visible-Ring,aria-current,prefers-reduced-motion. Mobile: eigene Zeile im Burger-Menü mit Hairline-Trenner, 48px Targets. Pill/Dropdown verworfen (CTA-Konflikt bzw. Over-Engineering bei 2 Sprachen).Cache-Busting (Root-Cause)
base.twighatte einen hartcodiertenassetVer = '2026051902'→ neue CSS/JS-Builds wurden auf Prod nie frisch geladen (genau warum der Switcher kaputt aussah: alte gecachte CSS). Jetztfilemtime-basiert via kleine Twig-Extension (assetMtime(), neuesmodules/site) — jedernpm run builderzeugt automatisch eine neue Asset-URL, kein manuelles Hochzählen mehr.Switcher-URL-Bugfix
Auf
/en/zeigte der DE-Link fälschlich auf/en/(man kam nicht zurück auf Deutsch). Ursache:entry.localized.eagerly().all()löst.urlim Kontext der Request-Site auf. Fix: per-Site-Query.site(site).one()setzt den Site-Scope explizit.Verifikation (lokal)
/,/en/, Artikel DE+EN: Switcher-Links zeigen jeweils korrekt auf die andere Sprachvariante (Artikel-aware, Home-Fallback)Refs #4
🤖 Generated with Claude Code
Replaces the opaque pill-style language toggle with a flächenloser inline text switcher: uppercase Aeion Mono 12px, Ink active state, grey-blue inactive, accent-blue hover, hairline divider (1px #c7ccd6) mirroring the PL| logo separator. Touch targets ≥44px desktop, ≥48px mobile. Focus ring 2px blue outline. prefers-reduced-motion respected. Mobile inherits border-block-start separator. Replaces the hardcoded prod asset version '2026051902' with automatic filemtime-based versioning via a new SiteModule + SiteTwigExtension (modules/site/). The assetMtime('@webroot/dist/main.min.css') Twig function returns the file's Unix mtime, which changes on every build, so no manual version bumps are ever needed. Module bootstrapped via config/app.web.php to guarantee registration before first Twig compile. Refs #4 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>