Traduci testo selezionato usando MyMemory con scelta della lingua. Lingue supportate: "Italiano": "it", "Inglese": "en", "Francese": "fr", "Spagnolo": "es", "Tedesco": "de","Portoghese": "pt", "Russo": "ru","Cinese": "zh", "Giapponese": "ja", "Coreano": "ko"
当前为
// ==UserScript==
// @name Traduttore MyMemory con Scelta Lingua
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Traduci testo selezionato usando MyMemory con scelta della lingua. Lingue supportate: "Italiano": "it", "Inglese": "en", "Francese": "fr", "Spagnolo": "es", "Tedesco": "de","Portoghese": "pt", "Russo": "ru","Cinese": "zh", "Giapponese": "ja", "Coreano": "ko"
// @author Magneto1
// @match *://*/*
// @license MIT
// @grant GM_xmlhttpRequest
// @grant GM_notification
// @grant GM_registerMenuCommand
// ==/UserScript==
(function() {
'use strict';
let selectedText = '';
// Funzione per tradurre il testo usando MyMemory
function translateWithMyMemory(text, sourceLang, targetLang) {
const url = `https://api.mymemory.translated.net/get?q=${encodeURIComponent(text)}&langpair=${sourceLang}|${targetLang}`;
GM_xmlhttpRequest({
method: "GET",
url: url,
onload: function(response) {
try {
const data = JSON.parse(response.responseText);
if (data && data.responseData && data.responseData.translatedText) {
GM_notification({ title: "Traduzione MyMemory", text: data.responseData.translatedText });
} else {
GM_notification({ title: "Errore", text: "Nessuna traduzione trovata." });
}
} catch (error) {
GM_notification({ title: "Errore", text: "Si è verificato un errore nella risposta." });
}
},
onerror: function() {
GM_notification({ title: "Errore", text: "Impossibile contattare il servizio di traduzione." });
}
});
}
// Funzione per registrare il comando di traduzione
function registerTranslateCommand() {
GM_registerMenuCommand("Traduci", () => {
if (selectedText) {
const sourceLang = prompt("Inserisci la lingua di origine (es. 'en' per inglese, 'it' per italiano):");
const targetLang = prompt("Inserisci la lingua di destinazione (es. 'en' per inglese, 'it' per italiano):");
if (sourceLang && targetLang) {
translateWithMyMemory(selectedText, sourceLang, targetLang);
} else {
GM_notification({ title: "Errore", text: "Lingua di origine o destinazione non valida." });
}
} else {
GM_notification({ title: "Errore", text: "Nessun testo selezionato." });
}
});
}
// Aggiungi un listener per la selezione del testo
document.addEventListener('mouseup', function() {
selectedText = window.getSelection().toString();
registerTranslateCommand(); // Registra il comando ogni volta che si seleziona del testo
});
})();