Jour 8 du défi de codage #100daysofMiva et j'ai travaillé sur un modèle de traducteur simple qui traduit une langue dans une autre ?
C'est JS, c'est magique✨ ?
Ce code JavaScript est conçu pour créer un traducteur de langue ludique et interactif ! Il utilise l'API MyMemory pour traduire du texte entre différentes langues et vous permet d'échanger des langues, de copier des traductions ou même de faire prononcer le texte à haute voix. ??
const countries = { /*...*/ }
Cet objet contient les langues disponibles et leurs codes pays respectifs. Par exemple, "en-GB" : "English" associe le code de langue à son nom.
selectTag.forEach((tag, id) => { /*...*/ });
Ce code remplit dynamiquement les menus déroulants avec toutes les langues répertoriées dans l'objet country. La première liste déroulante est par défaut en anglais ("en-GB") et la seconde en hindi ("hi-IN").
exchageIcon.addEventListener("click", () => { /*...*/ });
Cliquer sur l'icône d'échange permet aux utilisateurs d'échanger le texte et les langues sélectionnées entre les champs « de » et « à ».
translateBtn.addEventListener("click", () => { /*...*/ });
Lorsque vous cliquez sur le bouton « Traduire », le texte est envoyé à l'API MyMemory et le texte traduit est affiché dans le champ « vers texte ». En attendant la réponse, un espace réservé "Traduction..." s'affiche.
icons.forEach(icon => { /*...*/ });
Cette section gère les fonctionnalités de synthèse vocale et de copie :
Voici une présentation étape par étape du fonctionnement du code et de ce qu'il fait :
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"); }); });
Le script permet aux utilisateurs de traduire du texte entre différentes langues avec une interface dynamique et interactive. Les utilisateurs peuvent sélectionner des langues, saisir leur texte, le traduire en un clic, échanger des langues et du texte, entendre la traduction prononcée à haute voix ou la copier dans leur presse-papiers.
Amusez-vous à jouer avec différentes langues et rendez votre parcours de traduction amusant et interactif ! ?? Vers le prochain ?✌?✨
Découvrez-le ici
https://app.marvelly.com.ng/100daysofMiva/day-8/
Code source
https://github.com/Marvellye/100daysofMiva/blob/main/Projects/Day_8-Simple_lingual_translator
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3