Mal überarbeitet und bereinigt!
PS. Link im header neu gesetzt!
JavaScript
// Translate_DeepL.uc.js
// https://github.com/ardiman/userChrome.js/tree/master/contexttranslate
// ex ContextTranslate.uc.js///
// modifiziert by universum 123, Umlaute geändert by 2002Andreas
// https://www.camp-firefox.de/forum/thema/139966/?postID=1281813#post1281813
(function () {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
let translate = function () {
let browserMM = gBrowser.selectedBrowser.messageManager;
browserMM.addMessageListener('getSelection', function listener(message) {
let text = (message.data !== '');
if (text) {
openWebLinkIn('https://www.deepl.com/translator#en/de/' + encodeURIComponent(message.data), 'tab');
};
browserMM.removeMessageListener('getSelection', listener, true);
});
browserMM.loadFrameScript('data:,sendAsyncMessage("getSelection", content.document.getSelection().toString())', true);
}
let menuitem = document.createXULElement('menuitem');
menuitem.id = 'context-DeepLtranslate';
menuitem.setAttribute('label', '\u00dcbersetzen (DeepL)');
menuitem.classList.add('menuitem-iconic');
let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
let IconPath = '/chrome/icons/'; // Pfad in den entsprechenden Unterordner
let ButtonIcon = "DeepL_2.png"; // Name & Dateiendung des anzuzeigenden Symbols!
menuitem.style.setProperty('--menuitem-icon', 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")');
menuitem.addEventListener('command', translate);
let refItem = document.getElementById('context-inspect');
refItem.parentNode.insertBefore(menuitem, refItem);
})();
Alles anzeigen
Was aber nicht funktioniert, ganze Seiten übersetzen zu lassen.
Wie ich bereits schrieb: Das hat mit DeepL noch nie in der kostenlosen Version funktioniert. Dafür musst du mindestens 7,49 € pro Monat bezahlen.
Irgendwann einmal muss es funktioniert haben, sonst hätte ich es ja nicht eingebaut.
Ist aber auch nun egal, es geht nicht, also Code bereinigt!