diff --git a/CHANGELOG.md b/CHANGELOG.md index 81586f2..11181f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,19 @@ Alle nennenswerten Änderungen an diesem Projekt werden hier dokumentiert. Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.1.0/), Versionierung nach [Semantic Versioning](https://semver.org/lang/de/). +## [1.11.1] – 2026-07-20 + +### Behoben +- Wurde Deutsch im Sprachen-Admin deaktiviert (z. B. um die App auf nur + Englisch zu reduzieren), blieb die gesamte App trotzdem auf Deutsch + stehen, sowohl im öffentlichen als auch im internen Bereich: `getLocale()` + fiel bei fehlendem/ungültigem Sprach-Cookie bisher immer fest auf + Deutsch zurück, unabhängig davon, ob Deutsch überhaupt noch aktiv war. + Da der Sprachumschalter sich bei nur einer aktiven Sprache zusätzlich + automatisch ausblendet, gab es keine Möglichkeit, das über die + Oberfläche zu korrigieren. Der Fallback nutzt jetzt Deutsch nur noch, + wenn es tatsächlich aktiv ist – sonst die erste aktive Sprache. + ## [1.11.0] – 2026-07-20 ### Hinzugefügt diff --git a/lib/i18n/index.ts b/lib/i18n/index.ts index c7e9317..ba687c9 100644 --- a/lib/i18n/index.ts +++ b/lib/i18n/index.ts @@ -14,12 +14,15 @@ export * from "./shared"; /** Aktuelle Sprache aus dem Cookie lesen, validiert gegen die aktiven * Sprachen (Server-Komponenten). Ungültig oder nicht mehr aktiv → - * Basis-Sprache. */ + * Basis-Sprache, sofern die noch aktiv ist – sonst die erste aktive + * Sprache (z. B. wenn Deutsch im Admin-Bereich deaktiviert wurde). */ export async function getLocale(): Promise { const store = await cookies(); const value = store.get(LOCALE_COOKIE)?.value; const active = await listActiveLanguageCodes(); - return isLocale(value, active) ? value : DEFAULT_LOCALE; + if (isLocale(value, active)) return value; + if (active.includes(DEFAULT_LOCALE)) return DEFAULT_LOCALE; + return active[0] ?? DEFAULT_LOCALE; } /** Wörterbuch für eine Sprache. Nicht-deutsche Sprachen werden aus der diff --git a/package.json b/package.json index 065b84e..8454ea0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "canteen-menu", - "version": "1.11.0", + "version": "1.11.1", "private": true, "scripts": { "predev": "node --env-file-if-exists=.env.local db/migrate.mjs && node --env-file-if-exists=.env.local scripts/bootstrap-admin.mjs",