Adds a Translate button to the Google Search page
// ==UserScript== // @name Google Search Translate Button [Improved] // @namespace http://tampermonkey.net/ // @version 0.1 // @description Adds a Translate button to the Google Search page // @author neoOpus // @include http*://www.google.*/search* // @include http*://google.*/search* // @run-at document-end // ==/UserScript== // Change this to false if you don't want an icon const useIcon = true; // Change this to true if you want to add the button to the right of the 'Tools' button const appendRight = false; const queryRegex = /q=[^&]+/g; const siteRegex = /\+site(?:%3A|\:).+\.[^&+]+/g; const gTranslateUrl = "https://translate.google.com/#auto/en/"; const gTranslateIcon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22,4H12.23L11,.34A.5.5,0,0,0,10.5,0H2A2,2,0,0,0,0,2V18a2,2,0,0,0,2,2h9.65L13,23.68a.5.5,0,0,0,.47.32H22a2,2,0,0,0,2-2V6A2,2,0,0,0,22,4ZM7.5,15a4.5,4.5,0,1,1,2.92-7.92.5.5,0,1,1-.65.76A3.5,3.5,0,1,0,11,11H7.5a.5.5,0,0,1,0-1h4a.5.5,0,0,1,.5.5A4.5,4.5,0,0,1,7.5,15Zm11.9-4a11.26,11.26,0,0,1-1.86,3.29,6.67,6.67,0,0,1-1.07-1.48.5.5,0,0,0-.93.38,8,8,0,0,0,1.34,1.87,8.9,8.9,0,0,1-.65.62L14.62,11ZM23,22a1,1,0,0,1-1,1H14.6l2.77-3.17a.49.49,0,0,0,.09-.48h0l-.91-2.66a9.36,9.36,0,0,0,1-.89c1,1,1.93,1.91,2.12,2.08a.5.5,0,0,0,.68-.74c-.47-.43-1.33-1.25-2.13-2.1a11.49,11.49,0,0,0,2.22-4H21.5a.5.5,0,0,0,0-1H18V9.5a.5.5,0,0,0-1,0V10H14.5a.49.49,0,0,0-.21,0L12.57,5H22a1,1,0,0,1,1,1Z" data-name="Google Translate"/></svg>'; (function process(mutations) { // Creating the element var el = document.createElement('div'); el.className = 'hdtb-mitem'; var link = document.createElement('a'); // Adding the svg icon if (useIcon) { var span = document.createElement('span'); span.className = 'bmaJhd iJddsb'; span.style.cssText = 'height:16px;width:16px'; span.innerHTML += gTranslateIcon; link.appendChild(span); } var q = '', queryElement = document.querySelector('input[name="q"]'); // selector for the Google search input textbox if (queryElement) { q = encodeURIComponent(queryElement.value); } // Hyperlink to go to google translate link.appendChild(document.createTextNode('Translate')); link.href = gTranslateUrl + q el.appendChild(link); // Inserting the element into Google search if (appendRight) { var toolsBtn = document.getElementById('hdtb-tls'); toolsBtn.parentNode.insertBefore(el, toolsBtn.nextSibling); } else { var button = document.querySelector('.MUFPAc'); button.appendChild(el); } })();