blob: 6009c20bcd173fffbc16342101732846802d523d (
plain)
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
33
34
35
36
37
38
39
40
|
import { writable, derived, get } from "svelte/store";
import translations from './translations.js';
import { leftPanelUpdateLang } from "./left_panel.js";
let defaultLanguage = 'english';
const userLang = (navigator.language || navigator.userLanguage).toLowerCase();
if (userLang.startsWith('zh')) {
defaultLanguage = 'chinese';
}
if (userLang.startsWith('ja')) {
defaultLanguage = 'japanese';
}
let language = writable(defaultLanguage);
let languageState = defaultLanguage;
function setLanguage(newLanguage) {
localStorage.setItem('language', newLanguage);
languageState = newLanguage;
language.set(newLanguage);
leftPanelUpdateLang(get(currentTranslations).key);
}
function initLanguage() {
let cachedLanguage = localStorage.getItem('language');
if (cachedLanguage !== null) {
setLanguage(cachedLanguage);
}
}
const currentTranslations = derived(language, ($language) => {
return translations[$language] || translations.chinese;
});
export {
language,
languageState,
setLanguage,
initLanguage,
currentTranslations,
};
|