SPA-index.html: lang-Attribut serverseitig nach Accept-Language setzen (Crawler/No-JS sehen hartes en) #179
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#179
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Befund (28.07., beim Pruefen der Prod-Instanz-Locale): Das statische apps/web/index.html traegt hart lang="en". Die SPA korrigiert das seit #163 zur Laufzeit auf die Browsersprache — Crawler und No-JS-Aufrufe der SPA-Routen (z. B. das nackte /public/... auf Prod, das nginx als index.html-Fallback bedient) sehen aber dauerhaft lang="en", auch bei deutschen Inhalten. Die api-Server-Shell (/api/v1/public/...) ist korrekt (nutzt instance.defaultLocale, auf Prod de).
Loesungsskizze (nginx-only, kein Backend beteiligt): In apps/web/nginx.conf ein map-Block auf $http_accept_language (Whitelist de|en, Default en) und im index.html-Auslieferungspfad sub_filter 'lang="en"' -> 'lang="$detected_lang"' (sub_filter_once on, nur text/html). Das spiegelt die #163-Semantik (Browsersprache) fuer den Erstauslieferungszustand. Bekannte Grenze: instance.defaultLocale aus der DB kennt nginx nicht — Fallback bleibt en; das ist dokumentierenswert, aber akzeptabel, weil die Server-Shell fuer oeffentliche Inhalte die massgebliche gerenderte Fassung ist.
Akzeptanzkriterien (inkl. Barrierefreiheit, ADR 0017 / WCAG 3.1.1 Sprache der Seite):