-
Notifications
You must be signed in to change notification settings - Fork 1
/
translate.js
1 lines (1 loc) · 1.13 KB
/
translate.js
1
/** global: chrome */function get(){var e=a[i].tagName;if("P"==e||"H1"==e||"H3"==e||"H4"==e||"H2"==e||"H2"==e||"TITLE"==e||"A"==e||"EM"==e||"CITE"==e){var t=a[i].innerHTML;"A"==e&&(t.indexOf("<svg")>-1||t.indexOf("<img")>-1||t.indexOf("<source")||t.indexOf("<picture"))?(i++,get()):t.length>400?(bs="",y=0,ba=[],ba=t.split("."),multiTranslate(ba[y])):translate(t)}else i++,get()}function translate(e){port.postMessage({i:i,data:e,type:"single"})}function multiTranslate(e){port.postMessage({i:y,data:e,type:"multi"})}var port=chrome.runtime.connect({name:"deepl"}),a=document.getElementsByTagName("*"),i=0,y=0,bs="",ba=[];port.onMessage.addListener(function(e){"single"==e.type&&"deepl"==e.to?1!=e.error?(a[i].innerHTML=e.result,i=e.i,i<a.length?get():port.postMessage({msg:"finished"})):(i=e.i,i<a.length?get():port.postMessage({msg:"finished"})):"multi"==e.type&&"deepl"==e.to&&(1!=e.error?(bs+=e.result+". ",y=e.i,y<ba.length?multiTranslate(ba[y]):(a[i].innerHTML=bs,i++,i<a.length?get():port.postMessage({msg:"finished"}))):(y=e.i,y<ba.length?multiTranslate(ba[y]):(a[i].innerHTML=bs,i++,i<a.length?get():port.postMessage({msg:"finished"}))))}),get();