Tag 8 der #100daysofMiva Coding Challenge und ich habe an einem einfachen Übersetzermodell gearbeitet, das eine Sprache in eine andere übersetzt?
Es ist JS, es ist Magie✨?
Dieser JavaScript-Code wurde entwickelt, um einen spielerischen, interaktiven Sprachübersetzer zu erstellen! Es nutzt die MyMemory-API, um Text zwischen verschiedenen Sprachen zu übersetzen und ermöglicht Ihnen, Sprachen auszutauschen, Übersetzungen zu kopieren oder sich den Text sogar laut vorlesen zu lassen. ??
const countries = { /*...*/ }
Dieses Objekt enthält die verfügbaren Sprachen und ihre jeweiligen Ländercodes. Beispiel: „en-GB“: „English“ verbindet den Sprachcode mit seinem Namen.
selectTag.forEach((tag, id) => { /*...*/ });
Dieser Code füllt die Dropdown-Menüs dynamisch mit allen im Länderobjekt aufgeführten Sprachen. Das erste Dropdown-Menü ist standardmäßig auf Englisch („en-GB“) und das zweite auf Hindi („hi-IN“) eingestellt.
exchageIcon.addEventListener("click", () => { /*...*/ });
Durch Klicken auf das Austauschsymbol können Benutzer den Text und die ausgewählten Sprachen zwischen den Feldern „von“ und „bis“ austauschen.
translateBtn.addEventListener("click", () => { /*...*/ });
Wenn auf die Schaltfläche „Übersetzen“ geklickt wird, wird der Text an die MyMemory-API gesendet und der übersetzte Text wird im Feld „In Text“ angezeigt. Während auf die Antwort gewartet wird, wird ein Platzhalter „Wird übersetzt...“ angezeigt.
icons.forEach(icon => { /*...*/ });
Dieser Abschnitt behandelt die Text-to-Speech- und Kopierfunktionen:
Hier ist eine Schritt-für-Schritt-Anleitung, wie der Code funktioniert und was er tut:
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"); }); });
Das Skript ermöglicht Benutzern die Übersetzung von Text zwischen verschiedenen Sprachen mit einer dynamischen und interaktiven Oberfläche. Benutzer können Sprachen auswählen, ihren Text eingeben, ihn mit einem Klick übersetzen, Sprachen und Text austauschen, die Übersetzung laut vorlesen lassen oder sie in ihre Zwischenablage kopieren.
Viel Spaß beim Spielen mit verschiedenen Sprachen und gestalten Sie Ihre Übersetzungsreise unterhaltsam und interaktiv! ?? Zum nächsten ?✌?✨
Schau es dir hier an
https://app.marvelly.com.ng/100daysofMiva/day-8/
Quellcode
https://github.com/Marvellye/100daysofMiva/blob/main/Projects/Day_8-Simple_lingual_translator
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3