اليوم الثامن من تحدي البرمجة #100daysofMiva وعملت على نموذج مترجم بسيط يترجم لغة إلى أخرى؟
إنه JS، إنه سحر✨؟
تم تصميم كود جافا سكريبت هذا لإنشاء مترجم لغة مرح وتفاعلي! يستخدم MyMemory API لترجمة النص بين لغات مختلفة ويسمح لك بتبديل اللغات أو نسخ الترجمات أو حتى نطق النص بصوت عالٍ. ??
const countries = { /*...*/ }
يحتوي هذا الكائن على اللغات المتاحة ورموز البلدان الخاصة بها. على سبيل المثال، "en-GB": "الإنجليزية" يقرن رمز اللغة باسمها.
selectTag.forEach((tag, id) => { /*...*/ });
يقوم هذا الرمز بملء القوائم المنسدلة بشكل ديناميكي بجميع اللغات المدرجة في كائن البلدان. القائمة المنسدلة الأولى افتراضية باللغة الإنجليزية ("en-GB")، والثانية باللغة الهندية ("hi-IN").
exchageIcon.addEventListener("click", () => { /*...*/ });
يسمح النقر على أيقونة المبادلة للمستخدمين بتبديل النص واللغات المحددة بين الحقلين "من" و"إلى".
translateBtn.addEventListener("click", () => { /*...*/ });
عند النقر على زر "ترجمة"، يتم إرسال النص إلى MyMemory API، ويتم عرض النص المترجم في حقل "إلى نص". أثناء انتظار الرد، يظهر العنصر النائب "ترجمة...".
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/
كود المصدر
https://github.com/Marvellye/100daysofMiva/blob/main/Projects/Day_8-Simple_language_translator
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3