fix: Sprach-Fallback ignoriert deaktiviertes Deutsch

getLocale() fiel bei fehlendem/ungültigem Cookie bisher immer fest auf
Deutsch zurück, auch wenn Deutsch im Sprachen-Admin deaktiviert wurde.
Da der Sprachumschalter sich bei nur einer aktiven Sprache zusätzlich
ausblendet, gab es keine Möglichkeit, das über die Oberfläche zu
korrigieren. Fallback nutzt jetzt Deutsch nur noch, wenn es aktiv ist.
This commit is contained in:
2026-07-20 11:22:49 +02:00
parent ede11e5463
commit c98a3617a4
3 changed files with 19 additions and 3 deletions
+5 -2
View File
@@ -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<Locale> {
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