var html = document.getElementsByTagName("html")[0]; process(html); function process(element) { if (element.childNodes.length > 0) for (var i = 0;i < element.childNodes.length; i++) process(element.childNodes[i]); if (element.nodeType == Node.TEXT_NODE && /\S/.test(element.nodeValue)) { getTranslation(element); } } function translate(element,input) { var json = JSON.parse(JSON.stringify(input)).replace(/\\+/g,""); var jsonresult = json.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g); resultlength = jsonresult[0].length - 2; result = jsonresult[0].substr(1,resultlength); element.textContent = result + " "; } function getLang() { var httpLang = ''; if (httpLang.length > 0) { var userLang = httpLang; } else { var userLang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage); } return userLang; } function getTranslation(element){ var targetLang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage); var targetLang = getLang(); var url = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=" + targetLang + "&dt=t&q=" + encodeURI(element.textContent); var xmlhttp; xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ translate(element,xmlhttp.responseText); } } xmlhttp.open("GET", url, true); xmlhttp.send(); }