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:
+5
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user