-
Notifications
You must be signed in to change notification settings - Fork 1
/
popup.js
2 lines (2 loc) · 1.78 KB
/
popup.js
1
2
var userLang=navigator.language||navigator.userLanguage;userLang=userLang.toUpperCase();if(userLang.indexOf("-")){userLang=userLang.substring(0,2);}
document.addEventListener('DOMContentLoaded',function(){var checkPageButton=document.getElementById('checkPage');if(userLang!='FR')checkPageButton.innerHTML="translate";checkPageButton.addEventListener('click',function(){chrome.tabs.executeScript(null,{file:'translate.js'})},!1)},!1);chrome.runtime.onConnect.addListener(function(port){console.assert(port.name=="deepl");port.onMessage.addListener(function(request){if(request.msg=="finished"){var status="";chrome.browserAction.setBadgeText({text:status})}else{var status=" ";chrome.browserAction.setBadgeText({text:status});chrome.browserAction.setBadgeBackgroundColor({color:[0,55,105,250]});var w=request.i;var xhr=new XMLHttpRequest();xhr.open("POST","https://www.deepl.com/jsonrpc",!0);xhr.setRequestHeader("Content-type","application/json");xhr.onreadystatechange=function(){if(xhr.readyState===4&&xhr.status===200){var json=JSON.parse(xhr.responseText);var beams=json.result.translations;beams.forEach(element=>{try{var langue=json.result.source_lang;if(langue==userLang){w++;port.postMessage({to:"deepl",type:request.type,error:!0,info:userLang,i:w})}else{var transText=element.beams[0].postprocessed_sentence;transText=transText.replace("2005/","<");w++;port.postMessage({to:"deepl",type:request.type,error:!1,result:transText,i:w})}}catch(e){w++;port.postMessage({to:"deepl",type:request.type,error:!0,info:"catch :"+e,i:w})}})}};var data=JSON.stringify({"jsonrpc":"2.0","method":"LMT_handle_jobs","params":{"jobs":[{"kind":"default","raw_en_sentence":request.data}],"lang":{"user_preferred_langs":["EN","FR"],"source_lang_user_selected":"auto","target_lang":userLang},"priority":-1},"id":1});xhr.send(data)}})})