commit 8f2fd47c544d0f133a8345e6ae57bd2d0c8f5964 Author: OverPoweredDev Date: Wed Jul 7 19:51:23 2021 +0530 added feature: Webpage Translation a LOT of problems to fix though diff --git a/src/lib/storage.js b/src/lib/storage.js index 8155c66..0eb8a8c 100644 --- a/src/lib/storage.js +++ b/src/lib/storage.js @@ -245,6 +245,10 @@ function getTranslationEndpoint() { return getGlobalSettings().apertiumSource + "translate"; } +function getTranslateDocEndpoint() { + return getGlobalSettings().apertiumSource + "translateDoc"; +} + function getDetectLanguageEndpoint() { return getGlobalSettings().apertiumSource + "identifyLang" } diff --git a/src/lib/translate.js b/src/lib/translate.js index 9923467..2ccb3f0 100644 --- a/src/lib/translate.js +++ b/src/lib/translate.js @@ -50,7 +50,8 @@ async function translateWebpage(sourceLanguage, targetLanguage) { textElements = [...new Set(textElements)]; let transportDocument = createNewDocument(textElements); - download(transportDocument, 'transport.html'); + + let translatedDocument = await getTranslatedDocument(sourceLanguage, targetLanguage, transportDocument, 'transport.html'); } function createNewDocument(nodeList) { @@ -59,7 +60,7 @@ function createNewDocument(nodeList) { nodeList.forEach((node, index) => { data += '<' + index + '>'; data += node.innerHTML; - data += '<\\' + index + '>\n\n'; + data += '<' + index + '>\n\n'; }) return new Blob([data], {type: 'text/plain'}); @@ -79,6 +80,25 @@ function download(file, filename) { }, 0); } +async function getTranslatedDocument(sourceLanguage, targetLanguage, file, filename) { + let langPair = ""; + langPair = langPair.concat(sourceLanguage, "|", targetLanguage); + + let formData = new FormData(); + formData.append('langpair', langPair); + formData.append('file', file, filename) + + fetch(getTranslateDocEndpoint(), { + method: 'POST', + body: formData + }) + .then(response => response.blob()) + .then((blob) => { + console.log(blob); + download(blob, filename); + }) +} + // everything below courtesy of https://gist.github.com/TinoDidriksen/c41c33ca5809ff297bf7b1608b3a41e2 const text_nodes = { 'ADDRESS': true, 'ARTICLE': true, 'ASIDE': true, 'AUDIO': true, 'BLOCKQUOTE': true, 'BODY': true,