File size: 847 Bytes
43a06dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { derived } from 'svelte/store';

import languages from '$i18n/languages.json';

import settings from '$lib/state/settings';
import { device } from '$lib/device';
import { INTERNAL_locale, defaultLocale } from '$lib/i18n/translations';

const isValid = (lang: string) => (
    Object.keys(languages).includes(lang)
);

export default derived(
    settings,
    ($settings) => {
        let currentLocale = defaultLocale;

        if ($settings.appearance.autoLanguage) {
            if (isValid(device.prefers.language)) {
                currentLocale = device.prefers.language;
            }
        } else {
            if (isValid($settings.appearance.language)) {
                currentLocale = $settings.appearance.language;
            }
        }

        INTERNAL_locale.set(currentLocale);
        return currentLocale;
    }
);