Fix Locale subscription (#369)

This commit is contained in:
Dobrovolskyi Bohdan
2026-07-21 13:04:42 +03:00
committed by GitHub
parent cb36725a46
commit 5259d007c9
+8
View File
@@ -1,3 +1,5 @@
import { writable } from 'svelte/store';
type Dictionary = { type Dictionary = {
[key: string]: string | Dictionary; [key: string]: string | Dictionary;
}; };
@@ -10,6 +12,7 @@ function getDateFormatter(locale: string) {
} }
class Locale { class Locale {
private _store = writable(this);
private _lang = $state(''); private _lang = $state('');
private _isLoadingInitial = $state(true); private _isLoadingInitial = $state(true);
private _isLoading = $state(true); private _isLoading = $state(true);
@@ -38,6 +41,7 @@ class Locale {
} }
import(`../locales/${this._lang}.json`).then((module) => { import(`../locales/${this._lang}.json`).then((module) => {
this.dictionary = module.default; this.dictionary = module.default;
this._store.set(this);
if (this._isLoadingInitial) { if (this._isLoadingInitial) {
this._isLoadingInitial = false; this._isLoadingInitial = false;
} }
@@ -67,6 +71,10 @@ class Locale {
public get df() { public get df() {
return this._df; return this._df;
} }
public subscribe(run: (value: Locale) => void, invalidate?: (value?: Locale) => void) {
return this._store.subscribe(run, invalidate);
}
} }
export const i18n = new Locale(); export const i18n = new Locale();