diff options
Diffstat (limited to 'apps/web-shared/src/lib/locale.ts')
| -rw-r--r-- | apps/web-shared/src/lib/locale.ts | 21 |
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()); +}); |
