#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 = ``; 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"); }); });
さまざまな言語で遊んで、翻訳の旅を楽しくインタラクティブなものにしましょう! ??次へ?✌?✨
こちらからご覧ください
https://app.marvelly.com.ng/100daysofMiva/day-8/
ソースコード
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3