ui: auto-detect browser language, re-render dynamic content on lang switch
This commit is contained in:
@@ -435,6 +435,27 @@ function renderAuth() {
|
||||
}
|
||||
}
|
||||
|
||||
function setLanguage(lang) {
|
||||
localStorage.setItem("tutor_lang", lang);
|
||||
document.documentElement.lang = lang;
|
||||
updateStaticText();
|
||||
document.querySelectorAll(".lang-btn").forEach((btn) => {
|
||||
btn.classList.toggle("is-active", btn.dataset.lang === lang);
|
||||
});
|
||||
if (state.session) renderSession();
|
||||
renderFeedback();
|
||||
renderProgress();
|
||||
renderOntology();
|
||||
renderAssetPrompt();
|
||||
const user = JSON.parse(localStorage.getItem("tutor_user") || "null");
|
||||
const token = localStorage.getItem("tutor_token");
|
||||
if (user && token) {
|
||||
setStatus(t("signedInAs", user.email || user.name));
|
||||
} else {
|
||||
setStatus(t("ready"));
|
||||
}
|
||||
}
|
||||
|
||||
els.logoutButton.addEventListener("click", () => {
|
||||
localStorage.removeItem("tutor_token");
|
||||
localStorage.removeItem("tutor_user");
|
||||
@@ -485,16 +506,18 @@ function escapeHTML(value) {
|
||||
document.querySelectorAll(".lang-switch").forEach((group) => {
|
||||
group.addEventListener("click", (e) => {
|
||||
if (!e.target.dataset.lang) return;
|
||||
const lang = e.target.dataset.lang;
|
||||
localStorage.setItem("tutor_lang", lang);
|
||||
document.documentElement.lang = lang;
|
||||
updateStaticText();
|
||||
document.querySelectorAll(".lang-btn").forEach((btn) => {
|
||||
btn.classList.toggle("is-active", btn.dataset.lang === lang);
|
||||
});
|
||||
setLanguage(e.target.dataset.lang);
|
||||
});
|
||||
});
|
||||
|
||||
if (!localStorage.getItem("tutor_lang")) {
|
||||
const browserLang = navigator.language || navigator.userLanguage || "";
|
||||
const lang = browserLang.toLowerCase().startsWith("ko") ? "ko" : "en";
|
||||
localStorage.setItem("tutor_lang", lang);
|
||||
document.documentElement.lang = lang;
|
||||
}
|
||||
|
||||
updateStaticText();
|
||||
window.renderAuth = renderAuth;
|
||||
window.setLanguage = setLanguage;
|
||||
renderAuth();
|
||||
|
||||
Reference in New Issue
Block a user