ScreenTranslator/translators/google.js

35 lines
1.1 KiB
JavaScript
Raw Normal View History

2015-10-08 22:36:02 +07:00
var isPageLoaded = false;
var isTranslationFinished = false; // async translation request
2015-10-10 03:33:49 +07:00
var isScheduled = false;
2015-10-08 22:36:02 +07:00
function checkFinished () {
2015-10-10 03:33:49 +07:00
if (!isPageLoaded || !isTranslationFinished || isScheduled) return;
isScheduled = true;
2015-10-08 22:36:02 +07:00
setTimeout(function () {
var spans = [].slice.call (document.querySelectorAll ('#result_box > span'));
var text = spans.reduce (function (res, i) {
return res + ' ' + i.innerText;
}, '');
st_wtp.translated (text);
2015-10-10 03:33:49 +07:00
isTranslationFinished = isScheduled = false;
2015-10-08 22:36:02 +07:00
}, 500); // wait for gui fill
}
function onResourceLoad (url) {
if (url.indexOf ('/translate_a/single') > -1) {
isTranslationFinished = true;
checkFinished ();
}
}
st_wtp.resourceLoaded.connect (onResourceLoad);
function onPageLoad () {
isPageLoaded = true;
checkFinished ();
}
window.onload = onPageLoad();
function translate (){
var url = 'https://translate.google.com/#auto/' +
st_wtp.resultLanguage + '/' + st_wtp.sourceText;
2015-10-10 03:33:49 +07:00
window.location = encodeURI (url);
2015-10-08 22:36:02 +07:00
}