commit 4cbce147ef7f8faa95891c8aaae793996bb59020 Author: OverPoweredDev Date: Sun Jul 4 18:16:00 2021 +0530 added to webpage translation diff --git a/src/content/content.js b/src/content/content.js index 8039c8e..f746d9d 100644 --- a/src/content/content.js +++ b/src/content/content.js @@ -1,28 +1,44 @@ +let settings, sourceLanguage; window.browser = (function () { return window.browser || window.chrome; })(); +jQuery.fn.ownText = function () { + return $(this).contents().filter(function () { + return this.nodeType === Node.TEXT_NODE; + }).text(); +}; + browser.runtime.sendMessage({method: "getSettings"}, function (response) { - let settings = response.settings; + settings = response.settings; addHoverElements(settings); }); -browser.runtime.onMessage.addListener(function(request, sender, sendResponse) { - if (request.method === "translateWebpage") { - console.log('hi') - sendResponse({}); +browser.runtime.onMessage.addListener(async function(request, sender, sendResponse) { + if (request.method !== "translateWebpage") { + sendResponse({}); //snub all other requests + } + + if(!sourceLanguage) { + sourceLanguage = await getWebsiteLanguage(); } + + await translateWebpage(settings.defaultLanguage, sourceLanguage); + sendResponse({}); }); async function addHoverElements(settings) { let enabledList = settings.enabledWebsites; if (enabledList.includes(window.location.hostname)) { - let sourceLanguage = await getWebsiteLanguage(); + if(!sourceLanguage) { + sourceLanguage = await getWebsiteLanguage(); + } + addHoverTag(settings.defaultLanguage, sourceLanguage); } } function getWebsiteLanguage(){ - let text = $('body').text().substring(0,300); + let text = $('body').text().substring(0,400); return detectLanguage(text); } \ No newline at end of file diff --git a/src/lib/translate.js b/src/lib/translate.js index 43a6d51..323c6eb 100644 --- a/src/lib/translate.js +++ b/src/lib/translate.js @@ -36,4 +36,20 @@ async function translateWord(inputText, sourceLanguage, targetLanguage) { .then(data => data.responseData.translatedText); return outputText; +} + +async function translateWebpage(sourceLanguage, targetLanguage){ + console.log('inside translatepage'); + let text; + let arr = [] + //iterate over all elements that are 'parents' + $(":parent").each(function () { + //filter out those that have innertext + text = $(this).ownText(); + if(text.length > 0 && /[a-zA-Z]/.test(text)) { + arr.push(text); + } + }); + + console.log(arr); } \ No newline at end of file