-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlanguage.js
More file actions
71 lines (57 loc) · 1.83 KB
/
language.js
File metadata and controls
71 lines (57 loc) · 1.83 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
export const SUPPORT_LANGUAGES = ["ko", "en"];
export const DEFAULT_LANGUAGE = "ko"
export const LANGUAGE_CONFIG_KEY = "lang"
export function getUserLanguage() {
loadParamLanguageIfGot()
if (getLanguage() == null) {
setLanguage(DEFAULT_LANGUAGE)
}
return getLanguage();
}
function loadParamLanguageIfGot() {
let langParam = new URL(location.href).searchParams.get(LANGUAGE_CONFIG_KEY);
if (langParam != null) {
setLanguage(langParam)
setToDefaultIfUnsupportedLanguage();
}
function setToDefaultIfUnsupportedLanguage() {
if (!SUPPORT_LANGUAGES.includes(getLanguage())) {
setLanguage(DEFAULT_LANGUAGE);
}
}
}
export function applyLanguageConfig() {
const otherLanguages = SUPPORT_LANGUAGES.filter(item => item !== getUserLanguage());
otherLanguages.forEach(lang => {
const it = document.querySelectorAll(lang);
it.forEach((value) => {
value.remove();
})
})
const startTag = `<${getUserLanguage()}>`;
const endTag = `</${getUserLanguage()}>`;
document.querySelectorAll(getUserLanguage()).forEach(element => {
if (element.parentElement == null) {
return;
}
element.parentElement.innerHTML = element.parentElement.innerHTML.split(startTag).join("").split(endTag).join("");
})
}
export function changeLanguage() {
if (getUserLanguage() === "ko") {
setLanguage("en");
} else {
setLanguage("ko");
}
const url = new URL(location.href);
url.searchParams.set(LANGUAGE_CONFIG_KEY, getLanguage());
location.href = url.toString();
}
function setLanguage(language) {
localStorage.setItem(LANGUAGE_CONFIG_KEY, language);
}
function getLanguage() {
return localStorage.getItem(LANGUAGE_CONFIG_KEY);
}
function reloadLanguageConfig() {
}