fix: load languages in an exported function

This commit is contained in:
Ased Mammad 2024-03-07 14:10:30 +03:30
parent c724e19e62
commit f55525c680
4 changed files with 18 additions and 14 deletions

View file

@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import { toast } from 'svelte-sonner'; import { toast } from 'svelte-sonner';
import { createEventDispatcher, onMount, getContext } from 'svelte'; import { createEventDispatcher, onMount, getContext } from 'svelte';
import { languages } from '$lib/i18n'; import { getLanguages } from '$lib/i18n';
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
import { models, user } from '$lib/stores'; import { models, user } from '$lib/stores';
@ -16,7 +16,7 @@
// General // General
let themes = ['dark', 'light', 'rose-pine dark', 'rose-pine-dawn light']; let themes = ['dark', 'light', 'rose-pine dark', 'rose-pine-dawn light'];
let theme = 'dark'; let theme = 'dark';
// TODO: Get these dynamically from the i18n module let languages = [];
let lang = $i18n.language; let lang = $i18n.language;
let notificationEnabled = false; let notificationEnabled = false;
let system = ''; let system = '';
@ -69,6 +69,7 @@
onMount(async () => { onMount(async () => {
let settings = JSON.parse(localStorage.getItem('settings') ?? '{}'); let settings = JSON.parse(localStorage.getItem('settings') ?? '{}');
languages = await getLanguages();
theme = localStorage.theme ?? 'dark'; theme = localStorage.theme ?? 'dark';
notificationEnabled = settings.notificationEnabled ?? false; notificationEnabled = settings.notificationEnabled ?? false;

View file

@ -51,7 +51,7 @@ i18next
lookupLocalStorage: 'locale' lookupLocalStorage: 'locale'
}, },
fallbackLng: { fallbackLng: {
default: ['en-US'] default: ['en']
}, },
ns: 'translation', ns: 'translation',
interpolation: { interpolation: {
@ -62,6 +62,9 @@ i18next
const i18n = createI18nStore(i18next); const i18n = createI18nStore(i18next);
const isLoadingStore = createIsLoadingStore(i18next); const isLoadingStore = createIsLoadingStore(i18next);
export const languages = (await import(`./locales/languages.json`)).default; export const getLanguages = async () => {
const languages = (await import(`./locales/languages.json`)).default;
return languages;
};
export default i18n; export default i18n;
export const isLoading = isLoadingStore; export const isLoading = isLoadingStore;

View file

@ -1,22 +1,22 @@
[ [
{ {
"title": "English", "code": "en",
"code": "en-US" "title": "English"
}, },
{ {
"title": "فارسی", "code": "fa",
"code": "fa" "title": "فارسی"
}, },
{ {
"title": "Deutsch", "code": "de",
"code": "de" "title": "Deutsch"
}, },
{ {
"title": "French", "code": "fr",
"code": "fr" "title": "French"
}, },
{ {
"title": "Ukrainian", "code": "uk",
"code": "uk" "title": "Ukrainian"
} }
] ]