aboutsummaryrefslogtreecommitdiffstats
path: root/apps/kit/src/lib/locale.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/kit/src/lib/locale.ts')
-rw-r--r--apps/kit/src/lib/locale.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/apps/kit/src/lib/locale.ts b/apps/kit/src/lib/locale.ts
new file mode 100644
index 0000000..002f874
--- /dev/null
+++ b/apps/kit/src/lib/locale.ts
@@ -0,0 +1,20 @@
+import {writable} from "svelte/store";
+import {base_domain, CookieNames} from "./configuration";
+import {get_cookie, set_cookie} from "./helpers";
+
+export function preffered_or_default() {
+ if (/^en\b/i.test(navigator.language)) {
+ return "en";
+ }
+ if (/^nb\b/i.test(navigator.language) || /^nn\b/i.test(navigator.language)) {
+ return "nb";
+ }
+ return "en";
+}
+
+type Locales = "en"|"nb";
+export const currentLocale = writable<Locales>((get_cookie(CookieNames.locale) === "preffered" ? preffered_or_default() : get_cookie(CookieNames.locale) ?? preffered_or_default()) as Locales);
+currentLocale.subscribe(locale => {
+ // @ts-ignore
+ set_cookie(CookieNames.locale, locale, base_domain());
+});