Spaces:
Paused
Paused
| document.addEventListener('DOMContentLoaded', fetchLanguages); | |
| async function fetchLanguages() { | |
| try { | |
| const [languagesResponse, currentLanguageResponse] = await Promise.all([ | |
| fetch(`${url_prefix}/get-languages`), | |
| fetch(`${url_prefix}/get-locale`) | |
| ]); | |
| const languages = await languagesResponse.json(); | |
| const currentLanguage = await currentLanguageResponse.text(); | |
| const languageSelect = document.getElementById('language'); | |
| languages.forEach(lang => { | |
| const option = document.createElement('option'); | |
| option.value = lang; | |
| option.textContent = lang; | |
| languageSelect.appendChild(option); | |
| }); | |
| const savedLanguage = localStorage.getItem("language") || currentLanguage; | |
| setLanguageOnPageLoad(savedLanguage); | |
| } catch (error) { | |
| console.error("Failed to fetch languages or current language"); | |
| } | |
| } | |
| function setLanguageOnPageLoad(language) { | |
| document.getElementById("language").value = language; | |
| } | |
| function changeLanguage(lang) { | |
| fetch(`${url_prefix}/change-language`, { | |
| method: "POST", | |
| headers: { | |
| "Content-Type": "application/json", | |
| }, | |
| body: JSON.stringify({ language: lang }), | |
| }).then((response) => { | |
| if (response.ok) { | |
| localStorage.setItem("language", lang); | |
| location.reload(); | |
| } else { | |
| console.error("Failed to change language"); | |
| } | |
| }); | |
| } | |