summaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/lib/locale.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web-shared/src/lib/locale.ts')
-rw-r--r--apps/web-shared/src/lib/locale.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/apps/web-shared/src/lib/locale.ts b/apps/web-shared/src/lib/locale.ts
new file mode 100644
index 0000000..acb9ae5
--- /dev/null
+++ b/apps/web-shared/src/lib/locale.ts
@@ -0,0 +1,21 @@
+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_or_default()) as Locales);
+currentLocale.subscribe(locale => {
+ //@ts-ignore
+ if (locale === "preffered") set_cookie(CookieNames.locale, preffered_or_default(), base_domain());
+ set_cookie(CookieNames.locale, locale, base_domain());
+});