#100daysofMiva コーディング チャレンジの 8 日目、ある言語を別の言語に翻訳する単純な翻訳モデルに取り組みました。
JSです、魔法です✨?
この JavaScript コードは、遊び心のあるインタラクティブな言語翻訳ツールを作成するように設計されています。 MyMemory API を利用して異なる言語間でテキストを翻訳し、言語を交換したり、翻訳をコピーしたり、テキストを読み上げたりすることもできます。 ??
const countries = { /*...*/ }
このオブジェクトには、利用可能な言語とそれぞれの国コードが含まれています。たとえば、「en-GB」: 「English」は言語コードとその名前を組み合わせます。
selectTag.forEach((tag, id) => { /*...*/ });
このコードは、国オブジェクトにリストされているすべての言語をドロップダウン メニューに動的に入力します。最初のドロップダウンのデフォルトは英語 (「en-GB」)、2 番目のドロップダウンはヒンディー語 (「hi-IN」) です。
exchageIcon.addEventListener("click", () => { /*...*/ });
交換アイコンをクリックすると、ユーザーは「from」フィールドと「to」フィールドの間でテキストと選択した言語を入れ替えることができます。
translateBtn.addEventListener("click", () => { /*...*/ });
「翻訳」ボタンをクリックすると、テキストが MyMemory API に送信され、翻訳されたテキストが「to-text」フィールドに表示されます。応答を待っている間、「翻訳中...」プレースホルダーが表示されます。
icons.forEach(icon => { /*...*/ });
このセクションでは、テキスト読み上げ機能とコピー機能を扱います。
コードがどのように機能し、何を行うのかを段階的に説明します。
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 = `<option ${selected} value="${country_code}">${countries[country_code]}</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"); }); });
The script allows users to translate text between different languages with a dynamic and interactive interface. Users can select languages, type in their text, translate it with a click, swap languages and text, hear the translation spoken aloud, or copy it to their clipboard.
Enjoy playing with different languages and make your translation journey fun and interactive! ?? Unto the next ?✌?✨
Check it out here
https://app.marvelly.com.ng/100daysofMiva/day-8/
Source code
https://github.com/Marvellye/100daysofMiva/blob/main/Projects%2FDay_8-Simple_language_translator
以上がAPIを備えたシンプルな言語翻訳ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。