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();
}