Rumah hujung hadapan web tutorial js Penterjemah Bahasa Mudah dengan API

Penterjemah Bahasa Mudah dengan API

Aug 29, 2024 pm 01:40 PM

Simple Language Translator with API

Hari 8 daripada cabaran pengekodan #100harisofMiva dan saya mengusahakan model penterjemah mudah yang menterjemahkan bahasa kepada bahasa lain ?
Ia JS, ia ajaib✨?

? Dokumentasi Skrip Penterjemah Bahasa

Gambaran keseluruhan

Kod JavaScript ini direka untuk mencipta penterjemah bahasa yang suka bermain dan interaktif! Ia menggunakan API MyMemory untuk menterjemah teks antara bahasa yang berbeza dan membolehkan anda menukar bahasa, menyalin terjemahan, atau bahkan meminta teks itu dituturkan dengan kuat. ??


Ciri-ciri

  • ? Pemilihan Bahasa: Pengguna boleh memilih daripada pelbagai bahasa, daripada Amharik hingga Zulu!
  • ? Tukar Bahasa: Tukar dengan mudah antara bahasa sumber dan bahasa sasaran dengan satu klik butang.
  • ? Text-to-Speech: Dengar teks asal atau terjemahan dalam bahasa yang dipilih.
  • ? Salin ke Papan Klip: Salin teks asal atau terjemahan dengan satu klik.

Pecahan Kod

Data Bahasa

const countries = { /*...*/ } 
Salin selepas log masuk

Objek ini mengandungi bahasa yang tersedia dan kod negara masing-masing. Contohnya, "en-GB": "Bahasa Inggeris" menggandingkan kod bahasa dengan namanya.

Dropdown Dinamik

selectTag.forEach((tag, id) => {
    /*...*/
});
Salin selepas log masuk

Kod ini secara dinamik mengisi menu lungsur dengan semua bahasa yang disenaraikan dalam objek negara. Jatuh turun pertama lalai kepada bahasa Inggeris ("en-GB") dan yang kedua kepada Hindi ("hi-IN").

Pertukaran Bahasa

exchageIcon.addEventListener("click", () => {
    /*...*/
});
Salin selepas log masuk

Mengklik ikon swap membolehkan pengguna menukar teks dan bahasa yang dipilih antara medan "dari" dan "kepada".

Terjemahan Masa Nyata

translateBtn.addEventListener("click", () => {
    /*...*/
});
Salin selepas log masuk

Apabila butang "Terjemah" diklik, teks dihantar ke MyMemory API dan teks terjemahan dipaparkan dalam medan "ke-teks". Sementara menunggu jawapan, pemegang tempat "Menterjemah..." ditunjukkan.

Teks-ke-Pertuturan & Salin

icons.forEach(icon => {
    /*...*/
});
Salin selepas log masuk

Bahagian ini mengendalikan fungsi Text-to-Speech dan salin:

  • Ucapan: Memainkan teks dengan kuat dalam bahasa yang dipilih.
  • Salin: Menyalin teks ke papan keratan.

Bagaimana Ia Berfungsi

  1. Pilih Bahasa ?: Pilih bahasa anda daripada menu lungsur.
  2. Taip atau Tampal Teks ✍️: Masukkan teks yang ingin anda terjemahkan.
  3. Terjemah ?: Klik butang "Terjemah" dan saksikan keajaiban berlaku!
  4. Tukar, Dengar atau Salin ???: Tukar bahasa, dengar terjemahan atau salin teks ke papan keratan anda.

Kebergantungan

  • MyMemory API: Fungsi terjemahan dikuasakan oleh MyMemory API. Pastikan anda mempunyai sambungan internet yang aktif untuk membolehkannya berfungsi.

Potensi Peningkatan

  • Pengesanan Auto Bahasa: Mengesan bahasa teks input secara automatik.
  • Pengendalian Ralat Terperinci: Tingkatkan respons untuk ralat terjemahan atau kegagalan API.
  • Terjemahan Berbilang: Tunjukkan terjemahan alternatif jika tersedia.

Berikut ialah pecahan langkah demi langkah tentang cara kod berfungsi dan fungsinya:

Step 1: Defining Available Languages

const countries = { /*...*/ }
Salin selepas log masuk
  • What it does: This object contains key-value pairs where the key is a language-country code (like "en-GB" for English) and the value is the name of the language (like "English").
  • Purpose: This data is used to populate the language selection dropdowns so users can choose their source and target languages.

Step 2: Selecting DOM Elements

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"),
Salin selepas log masuk
  • What it does: This code selects various elements from the HTML document and stores them in variables for easy access later.
    • fromText and toText: Text areas where users input text and see the translation.
    • exchageIcon: The icon used to swap languages and text.
    • selectTag: The dropdown menus for selecting languages.
    • icons: Icons for copy and speech functions.
    • translateBtn: The button that triggers the translation.

Step 3: Populating Language Dropdowns

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);
    }
});
Salin selepas log masuk
  • What it does: This loop goes through the countries object and adds each language as an option in the language selection dropdowns.
    • If the dropdown is the first one (id == 0), English ("en-GB") is selected by default.
    • If the dropdown is the second one (id == 1), Hindi ("hi-IN") is selected by default.

Step 4: Swapping Languages and Text

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;
});
Salin selepas log masuk
  • What it does: When the swap icon is clicked, this function swaps the text between the "from" and "to" text areas as well as the selected languages.
    • tempText temporarily holds the original text from the "from-text" field.
    • tempLang temporarily holds the original language from the first dropdown.
    • The "from-text" is then replaced with the "to-text", and vice versa. The selected languages are also swapped.

Step 5: Clearing Translated Text

fromText.addEventListener("keyup", () => {
    if(!fromText.value) {
        toText.value = "";
    }
});
Salin selepas log masuk
  • What it does: If the user deletes all the text from the "from-text" field, this function automatically clears the "to-text" field as well.
  • Purpose: Ensures that if the input text is cleared, the translation is cleared too, preventing confusion.

Step 6: Translating Text

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");
    });
});
Salin selepas log masuk
  • What it does: When the "Translate" button is clicked, this function:
    1. Extracts the text from the "from-text" field.
    2. Identifies the selected languages from the dropdowns.
    3. Sends a request to the MyMemory API with the text and selected languages.
    4. Receives the translation from the API and displays it in the "to-text" field.
    5. Updates the placeholder text while waiting for the translation to indicate that the process is ongoing.

Summary

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

Atas ialah kandungan terperinci Penterjemah Bahasa Mudah dengan API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ganti aksara rentetan dalam javascript Ganti aksara rentetan dalam javascript Mar 11, 2025 am 12:07 AM

Ganti aksara rentetan dalam javascript

periksa jQuery jika tarikh sah periksa jQuery jika tarikh sah Mar 01, 2025 am 08:51 AM

periksa jQuery jika tarikh sah

jQuery mendapatkan padding/margin elemen jQuery mendapatkan padding/margin elemen Mar 01, 2025 am 08:53 AM

jQuery mendapatkan padding/margin elemen

10 Tab Accordion JQuery 10 Tab Accordion JQuery Mar 01, 2025 am 01:34 AM

10 Tab Accordion JQuery

10 patut diperiksa plugin jQuery 10 patut diperiksa plugin jQuery Mar 01, 2025 am 01:29 AM

10 patut diperiksa plugin jQuery

HTTP Debugging dengan Node dan HTTP-Console HTTP Debugging dengan Node dan HTTP-Console Mar 01, 2025 am 01:37 AM

HTTP Debugging dengan Node dan HTTP-Console

Tutorial Persediaan API Carian Google Custom Tutorial Persediaan API Carian Google Custom Mar 04, 2025 am 01:06 AM

Tutorial Persediaan API Carian Google Custom

jQuery tambah bar scroll ke div jQuery tambah bar scroll ke div Mar 01, 2025 am 01:30 AM

jQuery tambah bar scroll ke div

See all articles