Skip to content

Instantly share code, notes, and snippets.

@oatmealine
Created October 21, 2019 19:48
Show Gist options
  • Save oatmealine/15b8a1912774f2b0026d0fd39e43e96d to your computer and use it in GitHub Desktop.
Save oatmealine/15b8a1912774f2b0026d0fd39e43e96d to your computer and use it in GitHub Desktop.
// 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