aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/helpers/google-translate.js82
-rw-r--r--src/pages/background/background.js12
-rw-r--r--src/pages/options/translate.html9
-rw-r--r--src/pages/options/translate.js9
4 files changed, 88 insertions, 24 deletions
diff --git a/src/assets/javascripts/helpers/google-translate.js b/src/assets/javascripts/helpers/google-translate.js
index 025a2446..b9a783ff 100644
--- a/src/assets/javascripts/helpers/google-translate.js
+++ b/src/assets/javascripts/helpers/google-translate.js
@@ -1,19 +1,34 @@
+import commonHelper from './common.js'
+
const targets = [
"translate.google.com",
"translate.google.no"
];
const redirects = {
- "normal": [
- "https://translate.metalune.xyz",
- "https://simplytranslate.org",
- "https://st.alefvanoon.xyz",
- "https://translate.josias.dev",
- "https://translate.namazso.eu",
- "https://translate.riverside.rocks",
- "https://manerakai.asuscomm.com:447",
- "https://translate.bus-hit.me"
- ]
+ "simplyTranslate": {
+ "normal": [
+ "https://simplytranslate.org",
+ "https://st.alefvanoon.xyz",
+ "https://translate.josias.dev",
+ "https://translate.namazso.eu",
+ "https://translate.riverside.rocks",
+ "https://manerakai.asuscomm.com:447",
+ "https://translate.bus-hit.me",
+ "https://simplytranslate.pussthecat.org",
+ ]
+ },
+
+ "lingva": {
+ "normal": [
+ "https://lingva.ml",
+ "https://translate.alefvanoon.xyz",
+ "https://translate.igna.rocks",
+ "https://lingva.pussthecat.org",
+ "https://translate.datatunnel.xyz",
+ ]
+ }
+
};
let disableSimplyTranslate;
@@ -31,20 +46,53 @@ function setSimplyTranslateInstance(val) {
browser.storage.sync.set({ simplyTranslateInstance })
};
+let translateFrontend;
+const getFrontend = () => translateFrontend;
+function setFrontend(val) {
+ translateFrontend = val;
+ browser.storage.sync.set({ translateFrontend })
+ console.log("Translate frontend: ", frontend)
+}
+
async function redirect(url, initiator) {
await init()
- if (disableSimplyTranslate)
- return null;
- return `${simplyTranslateInstance}/${url.search}`;
+ if (disableSimplyTranslate) {
+ console.log("SImplyTranslte disabled")
+ return null
+ };
+
+ let link;
+ if (translateFrontend == 'simplyTransalte') {
+ link = commonHelper.getRandomInstance(redirects.simplyTranslate.normal);
+ console.log(`${link}/${url.search}`);
+ return `${link}/${url.search}`;
+ }
+ else if (translateFrontend == 'lingva') {
+ let params_arr = url.search.split('&');
+ params_arr[0] = params_arr[0].substring(1);
+ let myMap = new Map();
+ for (let i = 0; i < params_arr.length; i++) {
+ let pair = params_arr[i].split('=');
+ myMap.set(pair[0], pair[1]);
+ }
+ link = commonHelper.getRandomInstance(redirects.lingva.normal);
+ if (myMap.get("sl") && myMap.get("tl") && myMap.get("text"))
+ return `${link}/${myMap.get("sl")}/${myMap.get("tl")}/${myMap.get("text")}`;
+ else
+ return link;
+ }
}
+
async function init() {
let result = await browser.storage.sync.get([
"disableSimplyTranslate",
"simplyTranslateInstance",
+ "translateFrontend"
]);
disableSimplyTranslate = result.disableSimplyTranslate || false;
simplyTranslateInstance = result.simplyTranslateInstance;
+ translateFrontend = result.translateFrontend || "simplyTransalte";
}
export default {
@@ -54,12 +102,8 @@ export default {
setDisableSimplyTranslate,
getSimplyTranslateInstance,
setSimplyTranslateInstance,
+ getFrontend,
+ setFrontend,
redirect,
init,
};
-
-
-
-
-
-
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 05403a88..07335468 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -58,9 +58,11 @@ browser.webRequest.onBeforeRequest.addListener(
else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = await mediumHelper.redirect(url, initiator);
+ else if (googleTranslateHelper.targets.includes(url.host)) newUrl = await googleTranslateHelper.redirect(url, initiator);
+
+
else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = await searchHelper.redirect(url, initiator)
- else if (googleTranslateHelper.targets.includes(url.host)) newUrl = await googleTranslateHelper.redirect(url, initiator);
else if (url.host.match(wikipediaHelper.targets)) newUrl = await wikipediaHelper.redirect(url, initiator);
@@ -93,7 +95,8 @@ browser.tabs.onUpdated.addListener((tabId, changeInfo, _) => {
redditHelper.redirects.mobile,
...searchHelper.redirects.searx.normal,
...searchHelper.redirects.whoogle.normal,
- ...googleTranslateHelper.redirects.normal,
+ ...googleTranslateHelper.redirects.simplyTranslate.normal,
+ ...googleTranslateHelper.redirects.lingva.normal,
...mediumHelper.redirects.normal,
...wikipediaHelper.redirects.normal
);
@@ -127,7 +130,10 @@ browser.pageAction.onClicked.addListener((tab) => {
searchHelper.redirects.whoogle.normal.includes(protocolHost)
) newUrl = 'https://google.com';
- if (googleTranslateHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://translate.google.com';
+ if (
+ googleTranslateHelper.redirects.simplyTranslate.normal.includes(protocolHost) ||
+ googleTranslateHelper.redirects.lingva.normal.includes(protocolHost)
+ ) newUrl = 'https://translate.google.com';
if (mediumHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://medium.com';
diff --git a/src/pages/options/translate.html b/src/pages/options/translate.html
index 7e727c33..b193130a 100644
--- a/src/pages/options/translate.html
+++ b/src/pages/options/translate.html
@@ -33,8 +33,15 @@
<input id="simplyTranslate-instance" type="url" placeholder="https://translate.metalune.xyz" />
</div>
</div> -->
- </section>
+ <div class="some-block option-block">
+ <h4>Frontend</h4>
+ <select id="translate-frontend">
+ <option value="simplyTransalte">SimplyTransalte</option>
+ <option value="lingva">Lingva</option>
+ </select>
+ </div>
+ </section>
<script type="module" src="./init.js"></script>
<script type="module" src="./translate.js"></script>
diff --git a/src/pages/options/translate.js b/src/pages/options/translate.js
index c6182fc2..639b87b7 100644
--- a/src/pages/options/translate.js
+++ b/src/pages/options/translate.js
@@ -1,11 +1,18 @@
import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
let disableSimplyTranslateElement = document.getElementById("disable-simplyTranslate");
+let translateFrontendElement = document.getElementById("translate-frontend");
+
googleTranslateHelper.init().then(() => {
disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate();
+ translateFrontendElement.value = googleTranslateHelper.getFrontend();
});
disableSimplyTranslateElement.addEventListener("change",
(event) => googleTranslateHelper.setDisableSimplyTranslate(!event.target.checked)
-); \ No newline at end of file
+);
+
+translateFrontendElement.addEventListener("change",
+ (event) => googleTranslateHelper.setFrontend(event.target.options[translateFrontendElement.selectedIndex].value)
+);