Skip to content

Commit 68b2fe3

Browse files
authored
allow display language to differ from user setting (#1013)
1 parent b7e9d5c commit 68b2fe3

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

src/hooks.server.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
isAvailableLanguageTag,
99
setLanguageTag,
1010
sourceLanguageTag,
11+
type AvailableLanguageTag,
1112
} from "$paraglide/runtime";
1213
import Authentik, {
1314
type AuthentikProfile,
@@ -107,10 +108,16 @@ const databaseHandle: Handle = async ({ event, resolve }) => {
107108
});
108109
}
109110

111+
const langCandidates = [
112+
event.cookies.get("languageOverride"),
113+
member?.language,
114+
];
115+
110116
const lang =
111-
member?.language && isAvailableLanguageTag(member.language)
112-
? member.language
113-
: sourceLanguageTag;
117+
langCandidates.find(
118+
(tag): tag is AvailableLanguageTag =>
119+
!!tag && isAvailableLanguageTag(tag),
120+
) ?? sourceLanguageTag;
114121
event.locals.language = lang;
115122
setLanguageTag(lang);
116123

src/routes/(app)/members/[studentId]/UpdateMemberForm.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import apiNames from "$lib/utils/apiNames";
1313
import { page } from "$app/state";
1414
import type { ExtendedPrismaModel } from "$lib/server/extendedPrisma";
15+
/* eslint-disable no-restricted-imports -- This is needed for the language to be set correctly */
1516
import { goto } from "$app/navigation";
17+
/* eslint-enable no-restricted-imports -- Enable again */
1618
import { i18n } from "$lib/utils/i18n";
1719
1820
interface PageProps {

src/routes/LanguageSwitcher.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
1212
if (browser) {
1313
onSetLanguageTag(() => {
14+
document.cookie = `languageOverride=${languageTag()}; path=/`;
1415
invalidateAll();
1516
});
1617
}

0 commit comments

Comments
 (0)