Dia 8 do desafio de codificação #100daysofMiva e trabalhei em um modelo de tradutor simples que traduz um idioma para outro?
É JS, é mágico✨?
Este código JavaScript foi projetado para criar um tradutor de linguagem divertido e interativo! Ele utiliza a API MyMemory para traduzir texto entre diferentes idiomas e permite trocar idiomas, copiar traduções ou até mesmo falar o texto em voz alta. ??
const countries = { /*...*/ }
Este objeto contém os idiomas disponíveis e seus respectivos códigos de país. Por exemplo, "en-GB": "English" associa o código do idioma ao seu nome.
selectTag.forEach((tag, id) => { /*...*/ });
Este código preenche dinamicamente os menus suspensos com todos os idiomas listados no objeto de países. O primeiro menu suspenso é padronizado em inglês ("en-GB") e o segundo em hindi ("hi-IN").
exchageIcon.addEventListener("click", () => { /*...*/ });
Clicar no ícone de troca permite aos usuários trocar o texto e os idiomas selecionados entre os campos "de" e "para".
translateBtn.addEventListener("click", () => { /*...*/ });
Quando o botão "Traduzir" é clicado, o texto é enviado para a API MyMemory e o texto traduzido é exibido no campo "para texto". Enquanto aguarda a resposta, um espaço reservado "Traduzindo..." é mostrado.
icons.forEach(icon => { /*...*/ });
Esta seção trata das funcionalidades de conversão de texto em fala e cópia:
Aqui está um detalhamento passo a passo de como o código funciona e o que ele faz:
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"); }); });
O script permite aos usuários traduzir textos entre diferentes idiomas com uma interface dinâmica e interativa. Os usuários podem selecionar idiomas, digitar seu texto, traduzi-lo com um clique, trocar idiomas e texto, ouvir a tradução falada em voz alta ou copiá-la para a área de transferência.
Divirta-se brincando com diferentes idiomas e torne sua jornada de tradução divertida e interativa! ?? Até o próximo ?✌?✨
Confira aqui
https://app.marvelly.com.ng/100daysofMiva/day-8/
Código fonte
https://github.com/Marvellye/100daysofMiva/blob/main/Projects/Day_8-Simple_language_translator
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3