Created
October 21, 2019 19:48
-
-
Save oatmealine/15b8a1912774f2b0026d0fd39e43e96d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// warning: i am not responsible for any google translate ip-bans or ratelimits | |
var request = require('request'); | |
const token = require('@vitalets/google-translate-token'); | |
const langs = { | |
Automatic: "auto", | |
Afrikaans: "af", | |
Albanian: "sq", | |
Amharic: "am", | |
Arabic: "ar", | |
Armenian: "hy", | |
Azerbaijani: "az", | |
Basque: "eu", | |
Belarusian: "be", | |
Bengali: "bn", | |
Bosnian: "bs", | |
Bulgarian: "bg", | |
Catalan: "ca", | |
Cebuano: "ceb", | |
Chichewa: "ny", | |
"Chinese Simplified": "zh-cn", | |
"Chinese Traditional": "zh-tw", | |
Corsican: "co", | |
Croatian: "hr", | |
Czech: "cs", | |
Danish: "da", | |
Dutch: "nl", | |
English: "en", | |
Esperanto: "eo", | |
Estonian: "et", | |
Filipino: "tl", | |
Finnish: "fi", | |
French: "fr", | |
Frisian: "fy", | |
Galician: "gl", | |
Georgian: "ka", | |
German: "de", | |
Greek: "el", | |
Gujarati: "gu", | |
"Haitian Creole": "ht", | |
Hausa: "ha", | |
Hawaiian: "haw", | |
Hebrew: "iw", | |
Hindi: "hi", | |
Hmong: "hmn", | |
Hungarian: "hu", | |
Icelandic: "is", | |
Igbo: "ig", | |
Indonesian: "id", | |
Irish: "ga", | |
Italian: "it", | |
Japanese: "ja", | |
Javanese: "jw", | |
Kannada: "kn", | |
Kazakh: "kk", | |
Khmer: "km", | |
Korean: "ko", | |
"Kurdish (Kurmanji)": "ku", | |
Kyrgyz: "ky", | |
Lao: "lo", | |
Latin: "la", | |
Latvian: "lv", | |
Lithuanian: "lt", | |
Luxembourgish: "lb", | |
Macedonian: "mk", | |
Malagasy: "mg", | |
Malay: "ms", | |
Malayalam: "ml", | |
Maltese: "mt", | |
Maori: "mi", | |
Marathi: "mr", | |
Mongolian: "mn", | |
"Myanmar (Burmese)": "my", | |
Nepali: "ne", | |
Norwegian: "no", | |
Pashto: "ps", | |
Persian: "fa", | |
Polish: "pl", | |
Portuguese: "pt", | |
Punjabi: "ma", | |
Romanian: "ro", | |
Russian: "ru", | |
Samoan: "sm", | |
"Scots Gaelic": "gd", | |
Serbian: "sr", | |
Sesotho: "st", | |
Shona: "sn", | |
Sindhi: "sd", | |
Sinhala: "si", | |
Slovak: "sk", | |
Slovenian: "sl", | |
Somali: "so", | |
Spanish: "es", | |
Sundanese: "su", | |
Swahili: "sw", | |
Swedish: "sv", | |
Tajik: "tg", | |
Tamil: "ta", | |
Telugu: "te", | |
Thai: "th", | |
Turkish: "tr", | |
Ukrainian: "uk", | |
Urdu: "ur", | |
Uzbek: "uz", | |
Vietnamese: "vi", | |
Welsh: "cy", | |
Xhosa: "xh", | |
Yiddish: "yi", | |
Yoruba: "yo", | |
Zulu: "zu" | |
}; | |
function translate(text, origlang, translang) { | |
return new Promise(resolve => { | |
let trtoken = ""; | |
token.get(text).then(tk => trtoken = tk.value); | |
request | |
.defaults({ | |
headers: {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) Gecko/55.0 Firefox/69.0.3'} | |
}) | |
.get('https://translate.google.com/translate_a/t?client=webapp&sl='+origlang+'&tl='+translang+'&hl=en&v=1.0&source=is&tk='+trtoken+'&q='+encodeURI(text.split(' ').join('+')), function (error, response, body) { | |
if (error) console.error(error); | |
resolve(body); | |
}); | |
}) | |
} | |
async function masstranslate(text, count) { | |
let translatedtext = text; | |
let prevlang = 'en'; | |
for (i=0;i<count;i++) { | |
let randlang = Object.values(langs)[Math.floor(Math.random()*Object.keys(langs).length)]; | |
translatedtext = await translate(translatedtext, prevlang, randlang); | |
translatedtext = translatedtext.split('"')[1]; | |
translatedtext = translatedtext.split('\\n').join('\n'); | |
console.log(translatedtext); | |
prevlang = randlang; | |
} | |
translatedtext = await translate(translatedtext, prevlang, 'en'); | |
translatedtext = translatedtext.split('"')[1]; | |
translatedtext = translatedtext.split('\\n').join('\n'); | |
return await translatedtext | |
} | |
let sentence = `put text here whatever idc`; | |
console.log(sentence); | |
masstranslate(sentence, 6).then(sentence => {console.log('\n'+sentence)}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment