Persist language selection using localStorage

Language dropdowns now restore the user's last selected source and target languages from localStorage, or fall back to defaults if none are saved. Selections are saved on change, improving user experience by remembering preferences across sessions.
This commit is contained in:
xixu-me committed 2025-07-29 14:22:32 +08:00
1 parent cd8fcfbeef
commit 9359811ccf
1 file changed
+14 -5
+14 -5
View File
@@ -162,7 +162,7 @@ document.addEventListener("DOMContentLoaded", () => {
/**
* Populates language dropdown menus with sorted language options
* Sets default values for source (AUTO) and target (EN) languages
* Restores saved language selections or uses defaults
*/
function populateLanguages() {
elements.sourceLangSelect.innerHTML =
@@ -182,9 +182,12 @@ document.addEventListener("DOMContentLoaded", () => {
elements.targetLangSelect.add(new Option(name, code));
});
// Set default language selections
elements.sourceLangSelect.value = "AUTO";
elements.targetLangSelect.value = "EN";
// Restore saved language selections or use defaults
const savedSourceLang = localStorage.getItem("deeplxSourceLang") || "AUTO";
const savedTargetLang = localStorage.getItem("deeplxTargetLang") || "EN";
elements.sourceLangSelect.value = savedSourceLang;
elements.targetLangSelect.value = savedTargetLang;
}
// Load and save settings
@@ -719,8 +722,14 @@ document.addEventListener("DOMContentLoaded", () => {
elements.sourceLangSelect.addEventListener("change", () => {
updateSwapButtonState();
scheduleAutoTranslate();
// Save source language selection
localStorage.setItem("deeplxSourceLang", elements.sourceLangSelect.value);
});
elements.targetLangSelect.addEventListener("change", () => {
scheduleAutoTranslate();
// Save target language selection
localStorage.setItem("deeplxTargetLang", elements.targetLangSelect.value);
});
elements.targetLangSelect.addEventListener("change", scheduleAutoTranslate);
// Panel management - close when clicking outside
elements.historyPanel.addEventListener("click", (e) => {