Spaces:
Runtime error
Runtime error
| document.addEventListener("DOMContentLoaded", () => { | |
| const fileInput = document.getElementById("fileInput"); | |
| const fileNameDisplay = document.getElementById("file-name-display"); | |
| const choixLangueBtn = document.getElementById("choix-langue"); | |
| const langOptions = document.getElementById("lang-options"); | |
| const translateBtn = document.getElementById("traduction"); | |
| const resultatDiv = document.getElementById("resultat"); | |
| // Correspondance entre affichage et code langue | |
| const languageMap = { | |
| "Français": "fr", | |
| "Anglais": "en", | |
| "Allemand": "de", | |
| "Espagnol": "es", | |
| "Italien": "it", | |
| "Chinois": "zh", | |
| "Arabe": "ar" | |
| }; | |
| let selectedLanguage = ""; | |
| let uploadedFile = null; | |
| // Gestion de l'upload du fichier | |
| fileInput.addEventListener("change", (event) => { | |
| uploadedFile = event.target.files[0]; | |
| if (uploadedFile) { | |
| // Affiche le nom dans deux endroits : le bouton et sous le bouton | |
| fileNameDisplay.textContent = ` Fichier sélectionné : ${uploadedFile.name}`; | |
| resultatDiv.innerHTML = `<p> Fichier sélectionné : <strong>${uploadedFile.name}</strong></p>`; | |
| } | |
| }); | |
| // Toggle du menu des langues avec animation | |
| choixLangueBtn.addEventListener("click", () => { | |
| langOptions.style.display = langOptions.style.display === "block" ? "none" : "block"; | |
| langOptions.classList.toggle("fade-in"); | |
| }); | |
| // Sélection de la langue | |
| document.querySelectorAll(".lang-btn").forEach(button => { | |
| button.addEventListener("click", () => { | |
| selectedLanguage = button.getAttribute("data-lang"); // Utilise le data-lang | |
| choixLangueBtn.innerHTML = `🌍 ${button.textContent.trim()}`; | |
| langOptions.style.display = "none"; | |
| console.log("Langue sélectionnée :", selectedLanguage); // Debug | |
| }); | |
| }); | |
| // Fonction pour envoyer le fichier et récupérer la traduction | |
| async function uploadFileForTranslation() { | |
| if (!uploadedFile) { | |
| showMessage(" Aucun fichier sélectionné.", "error"); | |
| return; | |
| } | |
| if (!selectedLanguage) { | |
| showMessage(" Veuillez choisir une langue.", "error"); | |
| return; | |
| } | |
| const formData = new FormData(); | |
| formData.append("file", uploadedFile); | |
| formData.append("language", selectedLanguage); | |
| console.log("Données envoyées :", [...formData.entries()]); | |
| try { | |
| showMessage(" Traduction en cours...", "loading"); | |
| const response = await fetch("http://127.0.0.1:8000/translate", { | |
| method: "POST", | |
| body: formData | |
| }); | |
| const data = await response.json(); | |
| console.log("Réponse de l'API :", data); | |
| if (data.error) { | |
| showMessage(` Erreur : ${data.error}`, "error"); | |
| } else { | |
| showMessage(`<h3>🌍 Traduction :</h3><p>${data.translation.replace(/\n/g, "<br>")}</p>`, "success"); | |
| } | |
| } catch (error) { | |
| showMessage(` Erreur : ${error.message}`, "error"); | |
| } | |
| } | |
| // Bouton traduction | |
| translateBtn.addEventListener("click", uploadFileForTranslation); | |
| // Fonction pour afficher les messages stylisés | |
| function showMessage(message, type) { | |
| resultatDiv.innerHTML = `<div class="message ${type}">${message}</div>`; | |
| } | |
| }); |