ghizlaneimane commited on
Commit
b784fa5
·
verified ·
1 Parent(s): 61db26f

Create prj.js

Browse files
Files changed (1) hide show
  1. prj.js +94 -0
prj.js ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener("DOMContentLoaded", () => {
2
+ const fileInput = document.getElementById("fileInput");
3
+ const fileNameDisplay = document.getElementById("file-name-display");
4
+ const choixLangueBtn = document.getElementById("choix-langue");
5
+ const langOptions = document.getElementById("lang-options");
6
+ const translateBtn = document.getElementById("traduction");
7
+ const resultatDiv = document.getElementById("resultat");
8
+
9
+ // Correspondance entre affichage et code langue
10
+ const languageMap = {
11
+ "Français": "fr",
12
+ "Anglais": "en",
13
+ "Allemand": "de",
14
+ "Espagnol": "es",
15
+ "Italien": "it",
16
+ "Chinois": "zh",
17
+ "Arabe": "ar"
18
+ };
19
+
20
+ let selectedLanguage = "";
21
+ let uploadedFile = null;
22
+
23
+ // Gestion de l'upload du fichier
24
+ fileInput.addEventListener("change", (event) => {
25
+ uploadedFile = event.target.files[0];
26
+ if (uploadedFile) {
27
+ // Affiche le nom dans deux endroits : le bouton et sous le bouton
28
+ fileNameDisplay.textContent = ` Fichier sélectionné : ${uploadedFile.name}`;
29
+ resultatDiv.innerHTML = `<p> Fichier sélectionné : <strong>${uploadedFile.name}</strong></p>`;
30
+ }
31
+ });
32
+
33
+ // Toggle du menu des langues avec animation
34
+ choixLangueBtn.addEventListener("click", () => {
35
+ langOptions.style.display = langOptions.style.display === "block" ? "none" : "block";
36
+ langOptions.classList.toggle("fade-in");
37
+ });
38
+
39
+ // Sélection de la langue
40
+ document.querySelectorAll(".lang-btn").forEach(button => {
41
+ button.addEventListener("click", () => {
42
+ selectedLanguage = button.getAttribute("data-lang"); // Utilise le data-lang
43
+ choixLangueBtn.innerHTML = `🌍 ${button.textContent.trim()}`;
44
+ langOptions.style.display = "none";
45
+ console.log("Langue sélectionnée :", selectedLanguage); // Debug
46
+ });
47
+ });
48
+
49
+ // Fonction pour envoyer le fichier et récupérer la traduction
50
+ async function uploadFileForTranslation() {
51
+ if (!uploadedFile) {
52
+ showMessage(" Aucun fichier sélectionné.", "error");
53
+ return;
54
+ }
55
+ if (!selectedLanguage) {
56
+ showMessage(" Veuillez choisir une langue.", "error");
57
+ return;
58
+ }
59
+
60
+ const formData = new FormData();
61
+ formData.append("file", uploadedFile);
62
+ formData.append("language", selectedLanguage);
63
+
64
+ console.log("Données envoyées :", [...formData.entries()]);
65
+
66
+ try {
67
+ showMessage(" Traduction en cours...", "loading");
68
+
69
+ const response = await fetch("http://127.0.0.1:8000/translate", {
70
+ method: "POST",
71
+ body: formData
72
+ });
73
+
74
+ const data = await response.json();
75
+ console.log("Réponse de l'API :", data);
76
+
77
+ if (data.error) {
78
+ showMessage(` Erreur : ${data.error}`, "error");
79
+ } else {
80
+ showMessage(`<h3>🌍 Traduction :</h3><p>${data.translation.replace(/\n/g, "<br>")}</p>`, "success");
81
+ }
82
+ } catch (error) {
83
+ showMessage(` Erreur : ${error.message}`, "error");
84
+ }
85
+ }
86
+
87
+ // Bouton traduction
88
+ translateBtn.addEventListener("click", uploadFileForTranslation);
89
+
90
+ // Fonction pour afficher les messages stylisés
91
+ function showMessage(message, type) {
92
+ resultatDiv.innerHTML = `<div class="message ${type}">${message}</div>`;
93
+ }
94
+ });