aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/_locales/en/messages.json2
-rw-r--r--src/_locales/es/messages.json2
-rw-r--r--src/_locales/it/messages.json2
-rw-r--r--src/_locales/ru/messages.json6
-rw-r--r--src/assets/javascripts/helpers/translate.js103
-rw-r--r--src/assets/javascripts/helpers/youtube/invidious-cookies.js8
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js75
-rw-r--r--src/pages/options/translate/translate.html231
-rw-r--r--src/pages/options/translate/translate.js30
-rw-r--r--src/pages/options/youtube/youtube.js36
-rw-r--r--src/pages/popup/popup.js8
11 files changed, 387 insertions, 116 deletions
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index c0426fca..35f9cf97 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -71,7 +71,7 @@
"message": "Search Engine Redirects",
"description": "Label for enable/disable Search Engine redirects option (options & pop-up)."
},
- "disableTranslate": {
+ "disable": {
"message": "SimplyTranslate Redirects",
"description": "Label for enable/disable SimplyTranslate redirects option (options & pop-up)."
},
diff --git a/src/_locales/es/messages.json b/src/_locales/es/messages.json
index b7a3b4fb..f2aa3af9 100644
--- a/src/_locales/es/messages.json
+++ b/src/_locales/es/messages.json
@@ -63,7 +63,7 @@
"message": "Redirecciones de Buscador",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de Buscador (opciones y pop-up)."
},
- "disableTranslate": {
+ "disable": {
"message": "Redirecciones de SimplyTranslate",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de SimplyTranslate (opciones y pop-up)."
},
diff --git a/src/_locales/it/messages.json b/src/_locales/it/messages.json
index 641f784b..38359eb7 100644
--- a/src/_locales/it/messages.json
+++ b/src/_locales/it/messages.json
@@ -59,7 +59,7 @@
"message": "Reindirizzamenti motore di ricerca",
"description": "Label for enable/disable Search Engine redirects option (options & pop-up)."
},
- "disableTranslate": {
+ "disable": {
"message": "Reindirizzamenti SimplyTranslate",
"description": "Label for enable/disable SimplyTranslate redirects option (options & pop-up)."
},
diff --git a/src/_locales/ru/messages.json b/src/_locales/ru/messages.json
index 55645861..dc2fb188 100644
--- a/src/_locales/ru/messages.json
+++ b/src/_locales/ru/messages.json
@@ -59,7 +59,7 @@
"message": "Перенаправление поисковой системы",
"description": "Название настройки для включения/выключения перенаправления поисковой системы (в настройках и всплывающем окне)."
},
- "disableTranslate": {
+ "disable": {
"message": "Перенаправление на SimplyTranslate",
"description": "Название настройки для включения/выключения перенаправления на SimplyTranslate (в настройках и всплывающем окне)."
},
@@ -87,7 +87,7 @@
"message": "Всегда включать темный режим Invidious",
"description": "Название настройки для 'Всегда включать темный режим Invidious' (в настройках)."
},
- "invidiousVolume": {
+ "volume": {
"message": "Громкость Invidious",
"description": "Название настройки для 'Громкость Invidious' (в настройках)."
},
@@ -99,7 +99,7 @@
"message": "Субтитры Invidious - коды языков (разделяются запятой)",
"description": "Название настройки для 'Субтитры Invidious - коды языков (разделяются запятой)' (в настройках)."
},
- "invidiousAutoplay": {
+ "autoplay": {
"message": "Автоматически воспроизводить видео Invidious при загрузке",
"description": "Название настройки для 'Автоматически воспроизводить видео Invidious при загрузке' (в настройках)."
},
diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate.js
index de76fe89..98546bcb 100644
--- a/src/assets/javascripts/helpers/translate.js
+++ b/src/assets/javascripts/helpers/translate.js
@@ -78,7 +78,6 @@ function setSimplyTranslateCustomRedirects(val) {
console.log("simplyTranslateCustomRedirects: ", val)
}
-
function setLingvaRedirects(val) {
redirects.lingva = val;
browser.storage.sync.set({ translateRedirects: redirects })
@@ -107,45 +106,62 @@ function setLingvaCustomRedirects(val) {
console.log("lingvaCustomRedirects: ", val)
}
-
-let disableTranslate;
-const getDisableTranslate = () => disableTranslate;
-function setDisableTranslate(val) {
- disableTranslate = val;
- browser.storage.sync.set({ disableTranslate })
- console.log("disableTranslate: ", disableTranslate)
+let disable;
+const getDisable = () => disable;
+function setDisable(val) {
+ disable = val;
+ browser.storage.sync.set({ translateDisable: disable })
+ console.log("disable: ", disable)
}
-let translateFrontend;
-const getFrontend = () => translateFrontend;
+let frontend;
+const getFrontend = () => frontend;
function setFrontend(val) {
- translateFrontend = val;
- browser.storage.sync.set({ translateFrontend })
- console.log("Translate frontend: ", val)
+ frontend = val;
+ browser.storage.sync.set({ translateFrontend: frontend })
+ console.log("translateFrontend: ", frontend)
}
-function redirect(url, initiator) {
- if (disableTranslate) {
- console.log("SimplyTranslate disabled")
- return null
- };
+let from;
+const getFrom = () => from;
+function setFrom(val) {
+ from = val;
+ browser.storage.sync.set({ translateFrom: from })
+ console.log("from: ", from)
+}
- if (translateFrontend == 'simplyTranslate') {
+let to;
+const getTo = () => to;
+function setTo(val) {
+ to = val;
+ browser.storage.sync.set({ translateTo: to })
+ console.log("to: ", to)
+}
+function isTranslate(url) {
+ if (disable) return null;
+ return targets.includes(url.host)
+}
+
+function redirect(url, initiator) {
+ let params_arr = url.search.split('&');
+ params_arr[0] = params_arr[0].substring(1);
+ let myMap = {};
+ for (let i = 0; i < params_arr.length; i++) {
+ let pair = params_arr[i].split('=');
+ myMap[pair[0]] = pair[1];
+ }
+ if (frontend == 'simplyTranslate') {
let instancesList = [...simplyTranslateRedirectsChecks, ...simplyTranslateCustomRedirects];
if (instancesList.length === 0) return null;
let randomInstance = commonHelper.getRandomInstance(instancesList)
- return `${randomInstance}/${url.search}`;
+ if (myMap.sl && myMap.tl && myMap.text)
+ return `${randomInstance}/${url.search}`;
+ else
+ return `${randomInstance}/?sl=${from}&tl=${to}`
}
- else if (translateFrontend == 'lingva') {
- let params_arr = url.search.split('&');
- params_arr[0] = params_arr[0].substring(1);
- let myMap = {};
- for (let i = 0; i < params_arr.length; i++) {
- let pair = params_arr[i].split('=');
- myMap[pair[0]] = pair[1];
- }
+ else if (frontend == 'lingva') {
let instancesList = [...lingvaRedirectsChecks, ...lingvaCustomRedirects];
if (instancesList.length === 0) return null;
let randomInstance = commonHelper.getRandomInstance(instancesList)
@@ -158,26 +174,28 @@ function redirect(url, initiator) {
}
-function isTranslate(url) {
- return targets.includes(url.host)
-}
-
async function init() {
return new Promise((resolve) => {
browser.storage.sync.get(
[
- "disableTranslate",
+ "translateDisable",
"translateFrontend",
"translateRedirects",
"simplyTranslateRedirectsChecks",
"simplyTranslateCustomRedirects",
"lingvaRedirectsChecks",
"lingvaCustomRedirects",
- ], (result) => {
- disableTranslate = result.disableTranslate ?? false;
- translateFrontend = result.translateFrontend ?? "simplyTranslate";
- if (result.translateRedirects)
- redirects = result.translateRedirects
+ "translateFrom",
+ "translateTo",
+ ],
+ (result) => {
+ disable = result.translateDisable ?? false;
+ frontend = result.translateFrontend ?? "simplyTranslate";
+
+ from = result.translateFrom ?? "auto";
+ to = result.translateTo ?? 'en';
+
+ if (result.translateRedirects) redirects = result.translateRedirects
simplyTranslateRedirectsChecks = result.simplyTranslateRedirectsChecks ?? [...redirects.simplyTranslate.normal];
simplyTranslateCustomRedirects = result.simplyTranslateCustomRedirects ?? [];
@@ -199,12 +217,17 @@ export default {
isTranslate,
- getDisableTranslate,
- setDisableTranslate,
+ getDisable,
+ setDisable,
getFrontend,
setFrontend,
+ getFrom,
+ setFrom,
+ getTo,
+ setTo,
+
getSimplyTranslateRedirectsChecks,
setSimplyTranslateRedirectsChecks,
diff --git a/src/assets/javascripts/helpers/youtube/invidious-cookies.js b/src/assets/javascripts/helpers/youtube/invidious-cookies.js
index 1ccdf1f8..6a168b83 100644
--- a/src/assets/javascripts/helpers/youtube/invidious-cookies.js
+++ b/src/assets/javascripts/helpers/youtube/invidious-cookies.js
@@ -18,20 +18,20 @@ browser.storage.sync.get(
"invidiousVideoQuality",
"invidiousDarkMode",
"OnlyEmbeddedVideo",
- "invidiousVolume",
+ "volume",
"invidiousPlayerStyle",
"invidiousSubtitles",
- "invidiousAutoplay",
+ "autoplay",
], (result) => {
const prefs = getCookie();
prefs.local = result.invidiousAlwaysProxy;
prefs.quality = result.invidiousVideoQuality;
prefs.dark_mode = result.invidiousDarkMode;
- prefs.volume = result.invidiousVolume;
+ prefs.volume = result.volume;
prefs.player_style = result.invidiousPlayerStyle;
prefs.subtitles = result.invidiousSubtitles;
- prefs.autoplay = result.invidiousAutoplay;
+ prefs.autoplay = result.autoplay;
document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`;
}
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 7c23f253..4d65b8c8 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -141,20 +141,20 @@ function setInvidiousVideoQuality(val) {
}
const getInvidiousVideoQuality = () => invidiousVideoQuality;
-let invidiousTheme;
-const getInvidiousTheme = () => invidiousTheme;
-function setInvidiousTheme(val) {
- invidiousTheme = val;
- browser.storage.sync.set({ invidiousTheme })
- console.log("invidiousTheme: ", invidiousTheme)
+let theme;
+const getTheme = () => theme;
+function setTheme(val) {
+ theme = val;
+ browser.storage.sync.set({ youtubeTheme: theme })
+ console.log("theme: ", theme)
}
-let invidiousVolume;
-const getInvidiousVolume = () => invidiousVolume;
-function setInvidiousVolume(val) {
- invidiousVolume = val;
- browser.storage.sync.set({ invidiousVolume })
- console.log("invidiousVolume: ", invidiousVolume)
+let volume;
+const getVolume = () => volume;
+function setVolume(val) {
+ volume = val;
+ browser.storage.sync.set({ youtubeVolume: volume })
+ console.log("youtubeVolume: ", volume)
}
let invidiousPlayerStyle;
@@ -173,12 +173,12 @@ function setInvidiousSubtitles(val) {
console.log("invidiousSubtitles: ", invidiousSubtitles)
}
-let invidiousAutoplay;
-const getInvidiousAutoplay = () => invidiousAutoplay;
-function setInvidiousAutoplay(val) {
- invidiousAutoplay = val;
- browser.storage.sync.set({ invidiousAutoplay })
- console.log("invidiousAutoplay: ", invidiousAutoplay)
+let autoplay;
+const getAutoplay = () => autoplay;
+function setAutoplay(val) {
+ autoplay = val;
+ browser.storage.sync.set({ youtubeAutoplay: autoplay })
+ console.log("autoplay: ", autoplay)
}
let frontend;
@@ -262,14 +262,14 @@ async function init() {
[
"invidiousAlwaysProxy",
"invidiousVideoQuality",
- "invidiousTheme",
+ "youtubeTheme",
"persistInvidiousPrefs",
"disableYoutube",
"OnlyEmbeddedVideo",
- "invidiousVolume",
+ "youtubeVolume",
"invidiousPlayerStyle",
"invidiousSubtitles",
- "invidiousAutoplay",
+ "youtubeAutoplay",
"youtubeRedirects",
"youtubeFrontend",
"invidiousRedirectsChecks",
@@ -287,11 +287,11 @@ async function init() {
invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
OnlyEmbeddedVideo = result.OnlyEmbeddedVideo ?? 'both';
invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
- invidiousTheme = result.invidiousTheme ?? 'DEFAULT';
- invidiousVolume = result.invidiousVolume ?? '--';
+ theme = result.youtubeTheme ?? 'DEFAULT';
+ volume = result.youtubeVolume ?? '--';
invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'DEFAULT';
invidiousSubtitles = result.invidiousSubtitles || '';
- invidiousAutoplay = result.invidiousAutoplay ?? 'DEFAULT';
+ autoplay = result.youtubeAutoplay ?? 'DEFAULT';
invidiousRedirectsChecks = result.invidiousRedirectsChecks ?? [...redirects.invidious.normal];
invidiousCustomRedirects = result.invidiousCustomRedirects ?? [];
@@ -318,9 +318,6 @@ function invidiousInitCookies(tabId) {
}
function redirect(url, type) {
-
- console.log("type", type);
-
if (frontend == 'freeTube' && type === "main_frame")
return `freetube://${url}`;
@@ -335,11 +332,11 @@ function redirect(url, type) {
if (invidiousAlwaysProxy != "DEFAULT") url.searchParams.append("local", invidiousAlwaysProxy);
if (invidiousVideoQuality != "DEFAULT") url.searchParams.append("quality", invidiousVideoQuality);
- if (invidiousTheme != "DEFAULT") url.searchParams.append("dark_mode", invidiousTheme);
- if (invidiousVolume != "--") url.searchParams.append("volume", invidiousVolume);
+ if (theme != "DEFAULT") url.searchParams.append("dark_mode", theme);
+ if (volume != "--") url.searchParams.append("volume", volume);
+ if (autoplay != "DEFAULT") url.searchParams.append("autoplay", autoplay);
if (invidiousPlayerStyle != "DEFAULT") url.searchParams.append("player_style", invidiousPlayerStyle);
if (invidiousSubtitles.trim() != '') url.searchParams.append("subtitles", invidiousSubtitles);
- if (invidiousAutoplay != "DEFAULT") url.searchParams.append("autoplay", invidiousAutoplay);
return `${randomInstance}${url.pathname.replace("/shorts/", "/watch?v=")}${url.search}`;
@@ -352,9 +349,9 @@ function redirect(url, type) {
if (OnlyEmbeddedVideo == 'onlyEmbedded' && type !== "sub_frame") return null
if (OnlyEmbeddedVideo == 'onlyNotEmbedded' && type !== "main_frame") return null;
- if (invidiousTheme != "DEFAULT") url.searchParams.append("theme", invidiousTheme);
- if (invidiousVolume != "--") url.searchParams.append("volume", invidiousVolume / 100);
- if (invidiousAutoplay != "DEFAULT") url.searchParams.append("playerAutoPlay", invidiousAutoplay);
+ if (theme != "DEFAULT") url.searchParams.append("theme", theme);
+ if (volume != "--") url.searchParams.append("volume", volume / 100);
+ if (autoplay != "DEFAULT") url.searchParams.append("playerAutoPlay", autoplay);
return `${randomInstance}${url.pathname.replace("/shorts/", "/watch?v=")}${url.search}`;
}
@@ -387,11 +384,11 @@ export default {
setInvidiousVideoQuality,
getInvidiousVideoQuality,
- setInvidiousTheme,
- getInvidiousTheme,
+ setTheme,
+ getTheme,
- setInvidiousVolume,
- getInvidiousVolume,
+ setVolume,
+ getVolume,
setInvidiousPlayerStyle,
getInvidiousPlayerStyle,
@@ -399,8 +396,8 @@ export default {
setInvidiousSubtitles,
getInvidiousSubtitles,
- setInvidiousAutoplay,
- getInvidiousAutoplay,
+ setAutoplay,
+ getAutoplay,
getPersistInvidiousPrefs,
setPersistInvidiousPrefs,
diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html
index 36380865..72ea3906 100644
--- a/src/pages/options/translate/translate.html
+++ b/src/pages/options/translate/translate.html
@@ -122,6 +122,237 @@
<hr>
+ <div id="simplyTranslate-lingva">
+ <div class="some-block option-block">
+ <h4>From</h4>
+ <select id="from">
+ <option value="auto">Auto</option>
+ <option value="af">Afrikaans</option>
+ <option value="sq">Albanian</option>
+ <option value="am">Amharic</option>
+ <option value="ar">Arabic</option>
+ <option value="hy">Armenian</option>
+ <option value="az">Azerbaijani</option>
+ <option value="eu">Basque</option>
+ <option value="be">Belarusian</option>
+ <option value="bn">Bengali</option>
+ <option value="bs">Bosnian</option>
+ <option value="bg">Bulgarian</option>
+ <option value="ca">Catalan</option>
+ <option value="ceb">Cebuano</option>
+ <option value="ny">Chichewa</option>
+ <option value="zh-CN">Chinese</option>
+ <option value="co">Corsican</option>
+ <option value="hr">Croatian</option>
+ <option value="cs">Czech</option>
+ <option value="da">Danish</option>
+ <option value="nl">Dutch</option>
+ <option value="en">English</option>
+ <option value="eo">Esperanto</option>
+ <option value="et">Estonian</option>
+ <option value="tl">Filipino</option>
+ <option value="fi">Finnish</option>
+ <option value="fr">French</option>
+ <option value="fy">Frisian</option>
+ <option value="gl">Galician</option>
+ <option value="ka">Georgian</option>
+ <option value="de">German</option>
+ <option value="el">Greek</option>
+ <option value="gu">Gujarati</option>
+ <option value="ht">Haitian Creole</option>
+ <option value="ha">Hausa</option>
+ <option value="haw">Hawaiian</option>
+ <option value="iw">Hebrew</option>
+ <option value="hi">Hindi</option>
+ <option value="hmn">Hmong</option>
+ <option value="hu">Hungarian</option>
+ <option value="is">Icelandic</option>
+ <option value="ig">Igbo</option>
+ <option value="id">Indonesian</option>
+ <option value="ga">Irish</option>
+ <option value="it">Italian</option>
+ <option value="ja">Japanese</option>
+ <option value="jw">Javanese</option>
+ <option value="kn">Kannada</option>
+ <option value="kk">Kazakh</option>
+ <option value="km">Khmer</option>
+ <option value="rw">Kinyarwanda</option>
+ <option value="ko">Korean</option>
+ <option value="ku">Kurdish (Kurmanji)</option>
+ <option value="ky">Kyrgyz</option>
+ <option value="lo">Lao</option>
+ <option value="la">Latin</option>
+ <option value="lv">Latvian</option>
+ <option value="lt">Lithuanian</option>
+ <option value="lb">Luxembourgish</option>
+ <option value="mk">Macedonian</option>
+ <option value="mg">Malagasy</option>
+ <option value="ms">Malay</option>
+ <option value="ml">Malayalam</option>
+ <option value="mt">Maltese</option>
+ <option value="mi">Maori</option>
+ <option value="mr">Marathi</option>
+ <option value="mn">Mongolian</option>
+ <option value="my">Myanmar (Burmese)</option>
+ <option value="ne">Nepali</option>
+ <option value="no">Norwegian</option>
+ <option value="or">Odia (Oriya)</option>
+ <option value="ps">Pashto</option>
+ <option value="fa">Persian</option>
+ <option value="pl">Polish</option>
+ <option value="pt">Portuguese</option>
+ <option value="pa">Punjabi</option>
+ <option value="ro">Romanian</option>
+ <option value="ru">Russian</option>
+ <option value="sm">Samoan</option>
+ <option value="gd">Scots Gaelic</option>
+ <option value="sr">Serbian</option>
+ <option value="st">Sesotho</option>
+ <option value="sn">Shona</option>
+ <option value="sd">Sindhi</option>
+ <option value="si">Sinhala</option>
+ <option value="sk">Slovak</option>
+ <option value="sl">Slovenian</option>
+ <option value="so">Somali</option>
+ <option value="es">Spanish</option>
+ <option value="su">Sundanese</option>
+ <option value="sw">Swahili</option>
+ <option value="sv">Swedish</option>
+ <option value="tg">Tajik</option>
+ <option value="ta">Tamil</option>
+ <option value="tt">Tatar</option>
+ <option value="te">Telugu</option>
+ <option value="th">Thai</option>
+ <option value="tr">Turkish</option>
+ <option value="tk">Turkmen</option>
+ <option value="uk">Ukrainian</option>
+ <option value="ur">Urdu</option>
+ <option value="ug">Uyghur</option>
+ <option value="uz">Uzbek</option>
+ <option value="vi">Vietnamese</option>
+ <option value="cy">Welsh</option>
+ <option value="xh">Xhosa</option>
+ <option value="yi">Yiddish</option>
+ <option value="yo">Yoruba</option>
+ <option value="zu">Zulu</option>
+ </select>
+ </div>
+
+ <div class="some-block option-block">
+ <h4>To</h4>
+ <select id="to">
+ <option value="af">Afrikaans</option>
+ <option value="sq">Albanian</option>
+ <option value="am">Amharic</option>
+ <option value="ar">Arabic</option>
+ <option value="hy">Armenian</option>
+ <option value="az">Azerbaijani</option>
+ <option value="eu">Basque</option>
+ <option value="be">Belarusian</option>
+ <option value="bn">Bengali</option>
+ <option value="bs">Bosnian</option>
+ <option value="bg">Bulgarian</option>
+ <option value="ca">Catalan</option>
+ <option value="ceb">Cebuano</option>
+ <option value="ny">Chichewa</option>
+ <option value="zh-CN">Chinese</option>
+ <option value="co">Corsican</option>
+ <option value="hr">Croatian</option>
+ <option value="cs">Czech</option>
+ <option value="da">Danish</option>
+ <option value="nl">Dutch</option>
+ <option value="en">English</option>
+ <option value="eo">Esperanto</option>
+ <option value="et">Estonian</option>
+ <option value="tl">Filipino</option>
+ <option value="fi">Finnish</option>
+ <option value="fr">French</option>
+ <option value="fy">Frisian</option>
+ <option value="gl">Galician</option>
+ <option value="ka">Georgian</option>
+ <option value="de">German</option>
+ <option value="el">Greek</option>
+ <option value="gu">Gujarati</option>
+ <option value="ht">Haitian Creole</option>
+ <option value="ha">Hausa</option>
+ <option value="haw">Hawaiian</option>
+ <option value="iw">Hebrew</option>
+ <option value="hi">Hindi</option>
+ <option value="hmn">Hmong</option>
+ <option value="hu">Hungarian</option>
+ <option value="is">Icelandic</option>
+ <option value="ig">Igbo</option>
+ <option value="id">Indonesian</option>
+ <option value="ga">Irish</option>
+ <option value="it">Italian</option>
+ <option value="ja">Japanese</option>
+ <option value="jw">Javanese</option>
+ <option value="kn">Kannada</option>
+ <option value="kk">Kazakh</option>
+ <option value="km">Khmer</option>
+ <option value="rw">Kinyarwanda</option>
+ <option value="ko">Korean</option>
+ <option value="ku">Kurdish (Kurmanji)</option>
+ <option value="ky">Kyrgyz</option>
+ <option value="lo">Lao</option>
+ <option value="la">Latin</option>
+ <option value="lv">Latvian</option>
+ <option value="lt">Lithuanian</option>
+ <option value="lb">Luxembourgish</option>
+ <option value="mk">Macedonian</option>
+ <option value="mg">Malagasy</option>
+ <option value="ms">Malay</option>
+ <option value="ml">Malayalam</option>
+ <option value="mt">Maltese</option>
+ <option value="mi">Maori</option>
+ <option value="mr">Marathi</option>
+ <option value="mn">Mongolian</option>
+ <option value="my">Myanmar (Burmese)</option>
+ <option value="ne">Nepali</option>
+ <option value="no">Norwegian</option>
+ <option value="or">Odia (Oriya)</option>
+ <option value="ps">Pashto</option>
+ <option value="fa">Persian</option>
+ <option value="pl">Polish</option>
+ <option value="pt">Portuguese</option>
+ <option value="pa">Punjabi</option>
+ <option value="ro">Romanian</option>
+ <option value="ru">Russian</option>
+ <option value="sm">Samoan</option>
+ <option value="gd">Scots Gaelic</option>
+ <option value="sr">Serbian</option>
+ <option value="st">Sesotho</option>
+ <option value="sn">Shona</option>
+ <option value="sd">Sindhi</option>
+ <option value="si">Sinhala</option>
+ <option value="sk">Slovak</option>
+ <option value="sl">Slovenian</option>
+ <option value="so">Somali</option>
+ <option value="es">Spanish</option>
+ <option value="su">Sundanese</option>
+ <option value="sw">Swahili</option>
+ <option value="sv">Swedish</option>
+ <option value="tg">Tajik</option>
+ <option value="ta">Tamil</option>
+ <option value="tt">Tatar</option>
+ <option value="te">Telugu</option>
+ <option value="th">Thai</option>
+ <option value="tr">Turkish</option>
+ <option value="tk">Turkmen</option>
+ <option value="uk">Ukrainian</option>
+ <option value="ur">Urdu</option>
+ <option value="ug">Uyghur</option>
+ <option value="uz">Uzbek</option>
+ <option value="vi">Vietnamese</option>
+ <option value="cy">Welsh</option>
+ <option value="xh">Xhosa</option>
+ <option value="yi">Yiddish</option>
+ <option value="yo">Yoruba</option>
+ <option value="zu">Zulu</option>
+ </select>
+ </div>
+ </div>
+
<div id="simplyTranslate">
<div class="some-block option-block">
<h4>Default Instances</h4>
diff --git a/src/pages/options/translate/translate.js b/src/pages/options/translate/translate.js
index a28d3215..4db80072 100644
--- a/src/pages/options/translate/translate.js
+++ b/src/pages/options/translate/translate.js
@@ -1,22 +1,24 @@
import translateHelper from "../../../assets/javascripts/helpers/translate.js";
import commonHelper from "../../../assets/javascripts/helpers/common.js";
-let disableTranslateElement = document.getElementById("disable-simplyTranslate");
-disableTranslateElement.addEventListener("change",
- (event) => translateHelper.setDisableTranslate(!event.target.checked)
+let disableElement = document.getElementById("disable-simplyTranslate");
+disableElement.addEventListener("change",
+ (event) => translateHelper.setDisable(!event.target.checked)
);
-
+let simplyTranslateLingvaDivElement = document.getElementById("simplyTranslate-lingva")
let simplyTranslateDivElement = document.getElementById("simplyTranslate")
let lingvaDivElement = document.getElementById("lingva")
function changeFrontendsSettings(frontend) {
if (frontend == 'simplyTranslate') {
+ simplyTranslateLingvaDivElement.style.display = 'block';
simplyTranslateDivElement.style.display = 'block';
lingvaDivElement.style.display = 'none';
}
else if (frontend == 'lingva') {
+ simplyTranslateLingvaDivElement.style.display = 'block';
simplyTranslateDivElement.style.display = 'none';
lingvaDivElement.style.display = 'block';
}
@@ -30,11 +32,29 @@ translateFrontendElement.addEventListener("change",
}
);
+let fromElement = document.getElementById("from");
+fromElement.addEventListener("change",
+ (event) => {
+ let from = event.target.options[fromElement.selectedIndex].value;
+ translateHelper.setFrom(from);
+ }
+);
+
+let toElement = document.getElementById("to");
+toElement.addEventListener("change",
+ (event) => {
+ let to = event.target.options[toElement.selectedIndex].value;
+ translateHelper.setTo(to);
+ }
+);
+
translateHelper.init().then(() => {
- disableTranslateElement.checked = !translateHelper.getDisableTranslate();
+ disableElement.checked = !translateHelper.getDisable();
let frontend = translateHelper.getFrontend();
translateFrontendElement.value = frontend;
changeFrontendsSettings(frontend);
+ fromElement.value = translateHelper.getFrom();
+ toElement.value = translateHelper.getTo();
commonHelper.processDefaultCustomInstances(
'simplyTranslate',
diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js
index 29831198..097ba096 100644
--- a/src/pages/options/youtube/youtube.js
+++ b/src/pages/options/youtube/youtube.js
@@ -36,31 +36,31 @@ disableYoutubeElement.addEventListener("change",
(event) => youtubeHelper.setDisableYoutube(!event.target.checked)
);
-let invidiousThemeElement = document.getElementById("invidious-theme");
-invidiousThemeElement.addEventListener("change",
- (event) => youtubeHelper.setInvidiousTheme(event.target.options[invidiousThemeElement.selectedIndex].value)
+let themeElement = document.getElementById("invidious-theme");
+themeElement.addEventListener("change",
+ (event) => youtubeHelper.setTheme(event.target.options[themeElement.selectedIndex].value)
);
-let invidiousVolumeElement = document.getElementById("invidious-volume");
-let invidiousVolumeValueElement = document.querySelector("#volume-value");
-invidiousVolumeElement.addEventListener("input",
+let volumeElement = document.getElementById("invidious-volume");
+let volumeValueElement = document.querySelector("#volume-value");
+volumeElement.addEventListener("input",
() => {
- youtubeHelper.setInvidiousVolume(invidiousVolumeElement.value);
- invidiousVolumeValueElement.textContent = `${invidiousVolumeElement.value}%`;
+ youtubeHelper.setVolume(volumeElement.value);
+ volumeValueElement.textContent = `${volumeElement.value}%`;
}
);
let invidiousClearVolumeElement = document.getElementById("clear-invidious-volume");
invidiousClearVolumeElement.addEventListener("click",
(_) => {
- youtubeHelper.setInvidiousVolume('--');
- invidiousVolumeValueElement.textContent = `--%`;
- invidiousVolumeElement.value = 50;
+ youtubeHelper.setVolume('--');
+ volumeValueElement.textContent = `--%`;
+ volumeElement.value = 50;
}
);
-let invidiousAutoplayElement = document.getElementById("invidious-autoplay");
-invidiousAutoplayElement.addEventListener("change",
- (event) => youtubeHelper.setInvidiousAutoplay(event.target.options[invidiousAutoplayElement.selectedIndex].value)
+let autoplayElement = document.getElementById("invidious-autoplay");
+autoplayElement.addEventListener("change",
+ (event) => youtubeHelper.setAutoplay(event.target.options[autoplayElement.selectedIndex].value)
);
let OnlyEmbeddedVideoElement = document.getElementById("only-embed");
@@ -75,12 +75,12 @@ alwaysUsePreferredElement.addEventListener("change",
youtubeHelper.init().then(() => {
disableYoutubeElement.checked = !youtubeHelper.getDisableYoutube();
- invidiousThemeElement.checked = youtubeHelper.getInvidiousTheme();
- invidiousVolumeElement.value = youtubeHelper.getInvidiousVolume();
- invidiousVolumeValueElement.textContent = `${youtubeHelper.getInvidiousVolume()}%`;
+ themeElement.checked = youtubeHelper.getTheme();
+ volumeElement.value = youtubeHelper.getVolume();
+ volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`;
OnlyEmbeddedVideoElement.value = youtubeHelper.getOnlyEmbeddedVideo();
alwaysUsePreferredElement.checked = youtubeHelper.getAlwaysusePreferred();
- invidiousAutoplayElement.checked = youtubeHelper.getInvidiousAutoplay();
+ autoplayElement.checked = youtubeHelper.getAutoplay();
let frontend = youtubeHelper.getFrontend();
youtubeFrontendElement.value = frontend;
changeFrontendsSettings(frontend);
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index fb46d96f..5ae42b97 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -20,7 +20,7 @@ let disableInstagramElement = document.querySelector("#disable-bibliogram");
let disableMapsElement = document.querySelector("#disable-osm");
let disableRedditElement = document.querySelector("#disable-reddit");
let disableSearchElement = document.querySelector("#disable-search");
-let disableTranslateElement = document.querySelector("#disable-simplyTranslate");
+let disableElement = document.querySelector("#disable-simplyTranslate");
let disableWikipediaElement = document.querySelector("#disable-wikipedia");
let disableMediumElement = document.querySelector("#disable-medium");
let disableImgurElement = document.querySelector("#disable-imgur");
@@ -47,7 +47,7 @@ wholeInit().then(() => {
disableMapsElement.checked = !mapsHelper.getDisableMaps();
disableRedditElement.checked = !redditHelper.getDisableReddit();
disableSearchElement.checked = !searchHelper.getDisableSearch();
- disableTranslateElement.checked = !translateHelper.getDisableTranslate();
+ disableElement.checked = !translateHelper.getDisable();
disableWikipediaElement.checked = !wikipediaHelper.getDisableWikipedia();
disableImgurElement.checked = !imgurHelper.getDisableImgur();
disableTiktokElement.checked = !tiktokHelper.getDisableTiktok();
@@ -78,8 +78,8 @@ disableSearchElement.addEventListener("change",
(event) => searchHelper.setDisableSearch(!event.target.checked)
);
-disableTranslateElement.addEventListener("change",
- (event) => translateHelper.setDisableTranslate(!event.target.checked)
+disableElement.addEventListener("change",
+ (event) => translateHelper.setDisable(!event.target.checked)
);
disableWikipediaElement.addEventListener("change",