diff --git a/src/app.js b/src/app.js index 8c1d77b..029f60d 100644 --- a/src/app.js +++ b/src/app.js @@ -2,7 +2,7 @@ import { LessonEngine } from "./impl/LessonEngine.js"; import { CodeEditor } from "./impl/CodeEditor.js"; import { renderLesson, renderModuleList, renderLevelIndicator, updateActiveLessonInSidebar } from "./helpers/renderer.js"; import { loadModules } from "./config/lessons.js"; -import { initI18n, t, getLanguage, setLanguage, getNextLanguage, applyTranslations } from "./i18n.js"; +import { initI18n, t, getLanguage, setLanguage, applyTranslations } from "./i18n.js"; // Simplified state - LessonEngine now manages lesson state and progress const state = { @@ -17,7 +17,7 @@ const elements = { // Header menuBtn: document.getElementById("menu-btn"), logoLink: document.getElementById("logo-link"), - langBtn: document.getElementById("lang-btn"), + langSelect: document.getElementById("lang-select"), helpBtn: document.getElementById("help-btn"), // Left panel @@ -117,10 +117,7 @@ function toggleExpectedResult() { // ================= LANGUAGE TOGGLE ================= -function toggleLanguage() { - const currentLang = getLanguage(); - const newLang = getNextLanguage(currentLang); - +function changeLanguage(newLang) { // Add transition class before any updates elements.editorSection?.classList.add("transitioning"); @@ -730,8 +727,9 @@ function init() { loadCurrentLesson(); }); - // Language toggle - elements.langBtn.addEventListener("click", toggleLanguage); + // Language select + elements.langSelect.value = getLanguage(); + elements.langSelect.addEventListener("change", (e) => changeLanguage(e.target.value)); // Expected result toggle elements.showExpectedBtn.addEventListener("click", toggleExpectedResult); diff --git a/src/i18n.js b/src/i18n.js index 067caf3..ba04fed 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -36,6 +36,7 @@ const translations = { // Sidebar menu: "Menu", closeMenu: "Close menu", + language: "Language", progress: "Progress", progressText: "{percent}% Complete ({completed}/{total})", lessons: "Lessons", @@ -135,6 +136,7 @@ const translations = { // Sidebar menu: "Menü", closeMenu: "Menü schließen", + language: "Sprache", progress: "Fortschritt", progressText: "{percent}% abgeschlossen ({completed}/{total})", lessons: "Lektionen", @@ -235,6 +237,7 @@ const translations = { // Sidebar menu: "Menu", closeMenu: "Zamknij menu", + language: "Język", progress: "Postęp", progressText: "{percent}% ukończone ({completed}/{total})", lessons: "Lekcje", @@ -335,6 +338,7 @@ const translations = { // Sidebar menu: "Menú", closeMenu: "Cerrar menú", + language: "Idioma", progress: "Progreso", progressText: "{percent}% completado ({completed}/{total})", lessons: "Lecciones", @@ -435,6 +439,7 @@ const translations = { // Sidebar menu: "القائمة", closeMenu: "إغلاق القائمة", + language: "اللغة", progress: "التقدم", progressText: "{percent}% مكتمل ({completed}/{total})", lessons: "الدروس", @@ -535,6 +540,7 @@ const translations = { // Sidebar menu: "Меню", closeMenu: "Закрити меню", + language: "Мова", progress: "Прогрес", progressText: "{percent}% завершено ({completed}/{total})", lessons: "Уроки", diff --git a/src/index.html b/src/index.html index 4045de3..674cf3f 100644 --- a/src/index.html +++ b/src/index.html @@ -20,7 +20,6 @@

CODECRISPIES

-
@@ -109,6 +108,17 @@