Update GoogleTranslateOption.plugin.js

This commit is contained in:
Mirco Wittrien 2020-06-26 22:42:48 +02:00
parent 00046bdb5c
commit a228729b6a
1 changed files with 45 additions and 15 deletions

View File

@ -16,10 +16,11 @@ var GoogleTranslateOption = (_ => {
const googleLanguages = ["af","am","ar","az","be","bg","bn","bs","ca","ceb","co","cs","cy","da","de","el","en","eo","es","et","eu","fa","fi","fr","fy","ga","gd","gl","gu","ha","haw","hi","hmn","hr","ht","hu","hy","id","ig","is","it","iw","ja","jw","ka","kk","km","kn","ko","ku","ky","la","lb","lo","lt","lv","mg","mi","mk","ml","mn","mr","ms","mt","my","ne","nl","no","ny","or","pa","pl","ps","pt","ro","ru","rw","sd","si","sk","sl","sm","sn","so","sq","sr","st","su","sv","sw","ta","te","tg","th","tk","tl","tr","tt","ug","uk","ur","uz","vi","xh","yi","yo","zh-CN","zu"]; const googleLanguages = ["af","am","ar","az","be","bg","bn","bs","ca","ceb","co","cs","cy","da","de","el","en","eo","es","et","eu","fa","fi","fr","fy","ga","gd","gl","gu","ha","haw","hi","hmn","hr","ht","hu","hy","id","ig","is","it","iw","ja","jw","ka","kk","km","kn","ko","ku","ky","la","lb","lo","lt","lv","mg","mi","mk","ml","mn","mr","ms","mt","my","ne","nl","no","ny","or","pa","pl","ps","pt","ro","ru","rw","sd","si","sk","sl","sm","sn","so","sq","sr","st","su","sv","sw","ta","te","tg","th","tk","tl","tr","tt","ug","uk","ur","uz","vi","xh","yi","yo","zh-CN","zu"];
const translationEngines = { const translationEngines = {
googleapi: {name:"GoogleApi", funcName:"googleApiTranslate", languages: googleLanguages}, googleapi: {name:"GoogleApi", auto:true, funcName:"googleApiTranslate", languages: googleLanguages},
google: {name:"Google", funcName:"googleTranslate", languages: googleLanguages}, google: {name:"Google", auto:true, funcName:"googleTranslate", languages: googleLanguages},
itranslate: {name:"iTranslate", funcName:"iTranslateTranslate", languages: [...new Set(["af","ar","az","be","bg","bn","bs","ca","ceb","cs","cy","da","de","el","en","eo","es","et","eu","fa","fi","fil","fr","ga","gl","gu","ha","he","hi","hmn","hr","ht","hu","hy","id","ig","is","it","ja","jw","ka","kk","km","kn","ko","la","lo","lt","lv","mg","mi","mk","ml","mn","mr","ms","mt","my","ne","nl","no","ny","pa","pl","pt-BR","pt-PT","ro","ru","si","sk","sl","so","sq","sr","st","su","sv","sw","ta","te","tg","th","tr","uk","ur","uz","vi","we","yi","yo","zh-CN","zh-TW","zu"].concat(googleLanguages))].sort()}, itranslate: {name:"iTranslate", auto:true, funcName:"iTranslateTranslate", languages: [...new Set(["af","ar","az","be","bg","bn","bs","ca","ceb","cs","cy","da","de","el","en","eo","es","et","eu","fa","fi","fil","fr","ga","gl","gu","ha","he","hi","hmn","hr","ht","hu","hy","id","ig","is","it","ja","jw","ka","kk","km","kn","ko","la","lo","lt","lv","mg","mi","mk","ml","mn","mr","ms","mt","my","ne","nl","no","ny","pa","pl","pt-BR","pt-PT","ro","ru","si","sk","sl","so","sq","sr","st","su","sv","sw","ta","te","tg","th","tr","uk","ur","uz","vi","we","yi","yo","zh-CN","zh-TW","zu"].concat(googleLanguages))].sort()},
yandex: {name:"Yandex", funcName:"yandexTranslate", languages: ["af","am","ar","az","ba","be","bg","bn","bs","ca","ceb","cs","cy","da","de","el","en","eo","es","et","eu","fa","fi","fr","ga","gd","gl","gu","he","hi","hr","ht","hu","hy","id","is","it","ja","jv","ka","kk","km","kn","ko","ky","la","lb","lo","lt","lv","mg","mhr","mi","mk","ml","mn","mr","ms","mt","my","ne","nl","no","pa","pap","pl","pt","ro","ru","si","sk","sl","sq","sr","su","sv","sw","ta","te","tg","th","tl","tr","tt","udm","uk","ur","uz","vi","xh","yi","zh"]} yandex: {name:"Yandex", auto:true, funcName:"yandexTranslate", languages: ["af","am","ar","az","ba","be","bg","bn","bs","ca","ceb","cs","cy","da","de","el","en","eo","es","et","eu","fa","fi","fr","ga","gd","gl","gu","he","hi","hr","ht","hu","hy","id","is","it","ja","jv","ka","kk","km","kn","ko","ky","la","lb","lo","lt","lv","mg","mhr","mi","mk","ml","mn","mr","ms","mt","my","ne","nl","no","pa","pap","pl","pt","ro","ru","si","sk","sl","sq","sr","su","sv","sw","ta","te","tg","th","tl","tr","tt","udm","uk","ur","uz","vi","xh","yi","zh"]},
papago: {name:"Papago", auto:false, funcName:"papagoTranslate", languages: ["en","es","fr","id","ja","ko","th","vi","zh-CN","zh-TW"]}
}; };
var languages, translating, isTranslating, translatedMessages, oldMessages; var languages, translating, isTranslating, translatedMessages, oldMessages;
@ -28,7 +29,7 @@ var GoogleTranslateOption = (_ => {
return class GoogleTranslateOption { return class GoogleTranslateOption {
getName () {return "GoogleTranslateOption";} getName () {return "GoogleTranslateOption";}
getVersion () {return "2.0.5";} getVersion () {return "2.0.6";}
getAuthor () {return "DevilBro";} getAuthor () {return "DevilBro";}
@ -36,7 +37,7 @@ var GoogleTranslateOption = (_ => {
constructor () { constructor () {
this.changelog = { this.changelog = {
"fixed":[["Context Menu Update","Fixes for the context menu update, yaaaaaay"]] "added":[["Papago","New translation engine, mostly used for asian languages, rather limited"]]
}; };
this.patchedModules = { this.patchedModules = {
@ -505,9 +506,10 @@ var GoogleTranslateOption = (_ => {
} }
setLanguages () { setLanguages () {
let languageIds = (translationEngines[engines.translator] || {}).languages || []; let engine = translationEngines[engines.translator] || {};
let languageIds = engine.languages || [];
languages = Object.assign( languages = Object.assign(
{ !engine.auto ? {} : {
auto: { auto: {
name: "Auto", name: "Auto",
id: "auto" id: "auto"
@ -716,10 +718,10 @@ var GoogleTranslateOption = (_ => {
let translation = result.querySelector("text"); let translation = result.querySelector("text");
let detected = result.querySelector("detected"); let detected = result.querySelector("detected");
if (translation && detected) { if (translation && detected) {
let detectedlang = detected.getAttribute("lang"); let detectedLang = detected.getAttribute("lang");
if (!data.specialcase && detectedlang && languages[detectedlang]) { if (!data.specialcase && detectedLang && languages[detectedLang]) {
data.input.name = languages[detectedlang].name; data.input.name = languages[detectedLang].name;
data.input.ownlang = languages[detectedlang].ownlang; data.input.ownlang = languages[detectedLang].ownlang;
} }
callback(translation.innerText); callback(translation.innerText);
} }
@ -732,6 +734,34 @@ var GoogleTranslateOption = (_ => {
}); });
} }
papagoTranslate (data, callback) {
BDFDB.LibraryRequires.request.post({
url: "https://openapi.naver.com/v1/papago/n2mt",
form: {
source: data.input.id,
target: data.output.id,
text: data.text
},
headers: {
"X-Naver-Client-Id": "kUNGxtAmTJQFbaFehdjk",
"X-Naver-Client-Secret": "zC70k3VhpM"
}
}, (error, response, result) => {
if (!error && result && response.statusCode == 200) {
try {
let message = (JSON.parse(result) || {}).message;
if (message && message.result && message.result.translatedText) callback(message.result.translatedText);
else callback("");
}
catch (err) {callback("");}
}
else {
BDFDB.NotificationUtils.toast("Failed to translate text. Translation Server is down, daily limited reached or API-key outdated. Try another Translate Engine.", {type:"error"});
callback("");
}
});
}
checkForSpecialCase (text, input) { checkForSpecialCase (text, input) {
if (input.id == "binary" || input.id == "braille" || input.id == "morse") return input; if (input.id == "binary" || input.id == "braille" || input.id == "morse") return input;
else if (input.id == "auto") { else if (input.id == "auto") {
@ -749,13 +779,13 @@ var GoogleTranslateOption = (_ => {
} }
string2binary (string) { string2binary (string) {
var binary = ""; let binary = "";
for (let character of string) binary += parseInt(character.charCodeAt(0).toString(2)).toPrecision(8).split(".").reverse().join("").toString() + " "; for (let character of string) binary += parseInt(character.charCodeAt(0).toString(2)).toPrecision(8).split(".").reverse().join("").toString() + " ";
return binary; return binary;
} }
string2braille (string) { string2braille (string) {
var braille = ""; let braille = "";
for (let character of string) braille += brailleConverter[character.toLowerCase()] ? brailleConverter[character.toLowerCase()] : character; for (let character of string) braille += brailleConverter[character.toLowerCase()] ? brailleConverter[character.toLowerCase()] : character;
return braille; return braille;
} }
@ -846,7 +876,7 @@ var GoogleTranslateOption = (_ => {
} }
getGoogleTranslatePageURL (input, output, text) { getGoogleTranslatePageURL (input, output, text) {
return "https://translate.google.com/#" + (BDFDB.LanguageUtils.languages[input] ? input : "auto") + "/" + output + "/" + encodeURIComponent(text); return `https://translate.google.com/#${BDFDB.LanguageUtils.languages[input] ? input : "auto"}/${output}/${encodeURIComponent(text)}`;
} }
getLanguageName (language) { getLanguageName (language) {