mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-07-25 12:56:29 +00:00
Fix Locale subscription (#369)
This commit is contained in:
committed by
GitHub
parent
cb36725a46
commit
5259d007c9
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user