¿Día 8 del desafío de codificación #100daysofMiva y trabajé en un modelo de traductor simple que traduce un idioma a otro?
¿Es JS, es mágico✨?
¡Este código JavaScript está diseñado para crear un traductor de idiomas interactivo y divertido! Utiliza la API MyMemory para traducir texto entre diferentes idiomas y le permite intercambiar idiomas, copiar traducciones o incluso hablar el texto en voz alta. ??
const countries = { /*...*/ }
Este objeto contiene los idiomas disponibles y sus respectivos códigos de país. Por ejemplo, "en-GB": "English" combina el código de idioma con su nombre.
selectTag.forEach((tag, id) => { /*...*/ });
Este código completa dinámicamente los menús desplegables con todos los idiomas enumerados en el objeto de países. El primer menú desplegable está predeterminado en inglés ("en-GB") y el segundo en hindi ("hi-IN").
exchageIcon.addEventListener("click", () => { /*...*/ });
Hacer clic en el ícono de intercambio permite a los usuarios intercambiar el texto y los idiomas seleccionados entre los campos "desde" y "hasta".
translateBtn.addEventListener("click", () => { /*...*/ });
Cuando se hace clic en el botón "Traducir", el texto se envía a MyMemory API y el texto traducido se muestra en el campo "a texto". Mientras espera la respuesta, se muestra un marcador de posición "Traduciendo...".
icons.forEach(icon => { /*...*/ });
Esta sección maneja las funcionalidades de texto a voz y copia:
Aquí hay un desglose paso a paso de cómo funciona el código y qué hace:
const countries = { /*...*/ }
const fromText = document.querySelector(".from-text"), toText = document.querySelector(".to-text"), exchageIcon = document.querySelector(".exchange"), selectTag = document.querySelectorAll("select"), icons = document.querySelectorAll(".row i"); translateBtn = document.querySelector("button"),
selectTag.forEach((tag, id) => { for (let country_code in countries) { let selected = id == 0 ? country_code == "en-GB" ? "selected" : "" : country_code == "hi-IN" ? "selected" : ""; let option = ``; tag.insertAdjacentHTML("beforeend", option); } });
exchageIcon.addEventListener("click", () => { let tempText = fromText.value, tempLang = selectTag[0].value; fromText.value = toText.value; toText.value = tempText; selectTag[0].value = selectTag[1].value; selectTag[1].value = tempLang; });
fromText.addEventListener("keyup", () => { if(!fromText.value) { toText.value = ""; } });
translateBtn.addEventListener("click", () => { let text = fromText.value.trim(), translateFrom = selectTag[0].value, translateTo = selectTag[1].value; if(!text) return; toText.setAttribute("placeholder", "Translating..."); let apiUrl = `https://api.mymemory.translated.net/get?q=${text}&langpair=${translateFrom}|${translateTo}`; fetch(apiUrl).then(res => res.json()).then(data => { toText.value = data.responseData.translatedText; data.matches.forEach(data => { if(data.id === 0) { toText.value = data.translation; } }); toText.setAttribute("placeholder", "Translation"); }); });
El script permite a los usuarios traducir texto entre diferentes idiomas con una interfaz dinámica e interactiva. Los usuarios pueden seleccionar idiomas, escribir su texto, traducirlo con un clic, intercambiar idiomas y texto, escuchar la traducción en voz alta o copiarla a su portapapeles.
¡Disfruta jugando con diferentes idiomas y haz que tu viaje de traducción sea divertido e interactivo! ?? ¿Hasta el próximo ?✌?✨
Compruébalo aquí
https://app.marvelly.com.ng/100daysofMiva/day-8/
Código fuente
https://github.com/Marvellye/100daysofMiva/blob/main/Projects/Day_8-Simple_language_translator
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3