swimmingArt/public/js/traduccionCoach.js

108 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const traducciones = {
es: {
title: "Crear Rutina SwimmingArt",
nav: {
init: "Inicializar Rutina",
equip: "Equipos Disponibles",
pool: "Piscina"
},
form: {
title: "Inicializar Nueva Rutina",
routineTitle: "Título de la rutina",
duration: "Duración",
durationPlaceholder: "Selecciona tipo de competencia y modalidad",
music: "Subir música (mp3)",
competition: "Nombre de la competencia",
type: "Tipo de competencia",
free: "Libre",
technical: "Técnica",
mode: "Modalidad",
solo: "Solo",
duo: "Dúo",
team: "Equipo",
save: "Guardar Rutina"
}
},
en: {
title: "Create Routine SwimmingArt",
nav: {
init: "Initialize Routine",
equip: "Available Equipment",
pool: "Pool"
},
form: {
title: "Initialize New Routine",
routineTitle: "Title of the routine",
duration: "Duration",
durationPlaceholder: "Select type and modality",
music: "Upload music (mp3)",
competition: "Name of the competition",
type: "Type of competition",
free: "Free",
technical: "Technical",
mode: "Mode",
solo: "Only",
duo: "Duo",
team: "Team",
save: "Save Routine"
}
},
fr: {
title: "Créer une Routine SwimmingArt",
nav: {
init: "Initialiser la Routine",
equip: "Équipements Disponibles",
pool: "Piscine"
},
form: {
title: "Initialiser une Nouvelle Routine",
routineTitle: "Titre de la routine",
duration: "Durée",
durationPlaceholder: "Sélectionnez le type et la modalité",
music: "Télécharger musique (mp3)",
competition: "Nom de la compétition",
type: "Type de compétition",
free: "Libre",
technical: "Technique",
mode: "Modalité",
solo: "Solo",
duo: "Duo",
team: "Équipe",
save: "Enregistrer la Routine"
}
}
};
let langActual = "es";
function updateLanguage(lang) {
langActual = lang;
const t = traducciones[lang];
document.querySelector("title").innerText = t.title;
document.querySelectorAll("[data-i18n]").forEach(el => {
const keys = el.getAttribute("data-i18n").split(".");
let value = t;
for (let k of keys) value = value[k];
if (el.tagName === "OPTION") {
el.text = value;
} else if (el.tagName === "INPUT" && el.placeholder !== undefined) {
el.placeholder = value;
} else {
el.textContent = value;
}
});
// actualizar el texto si la duración está vacía
const input = document.getElementById("duration");
if (input && !input.dataset.segundos) {
input.value = traducciones[langActual].form.durationPlaceholder;
}
}
document.getElementById("langSelector").addEventListener("change", function () {
updateLanguage(this.value);
});
window.onload = () => updateLanguage("es");