diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-06-10 00:35:22 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-06-10 00:35:22 +0200 |
| commit | 21764214c257949844d87e445f1a9f2736a20561 (patch) | |
| tree | 9fb2369ea92a53c6ba19825424693c73aab7c1e1 /apps/web-shared/src/lib/locale.ts | |
| parent | f6156d9137d4c07dd7afc8c3288dc00879db0b73 (diff) | |
| download | greatoffice-21764214c257949844d87e445f1a9f2736a20561.tar.xz greatoffice-21764214c257949844d87e445f1a9f2736a20561.zip | |
feat: Add translations to stopwatch.svelte
This commit also demonstrates how to do i18n across apps.
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()); +}); |
