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