Spaces:
Paused
Paused
| 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; | |
| } | |
| ); | |