Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net.Http;
- namespace Requester
- {
- enum Language
- {
- Auto,
- French,
- English,
- Japanese
- }
- class Translator
- {
- static string url = @"https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&f.sid=4993954143505568433&bl=boq_translate-webserver_20201221.17_p0&hl=fr&soc-app=1&soc-platform=1&soc-device=1&_reqid=700690&rt=c";
- Language src;
- Language dst;
- public Translator(Language src, Language dst)
- {
- this.src = src;
- this.dst = dst;
- }
- public string Translate(string toTranslate)
- {
- string translatedString;
- Dictionary<string, string> parameters = new Dictionary<string, string>();
- parameters.Add("f.req", $"[[[\"MkEWBc\",\"[[\\\"{toTranslate}\\\",\\\"{ParseLanguage(src)}\\\",\\\"{ParseLanguage(dst)}\\\",true],[null]]\", null, \"generic\"]]]");
- //parameters.Add("at", "AD08yZna3jZ2xQRbOG4dFZokrfl9:1608937889401");
- using (HttpClient client = new HttpClient())
- {
- FormUrlEncodedContent encodedParameters = new FormUrlEncodedContent(parameters);
- Task<HttpResponseMessage> responseMessage = client.PostAsync(Translator.url, encodedParameters);
- translatedString = ParseOutput(responseMessage.Result.Content.ReadAsStringAsync().Result);
- }
- return translatedString;
- }
- public string ParseOutput(string output)
- {
- int start = output.IndexOf(",[\\\"");
- string parseOutput = output.Substring(start + 4, output.Length - start - 4);
- string result = String.Empty;
- foreach(char c in parseOutput)
- {
- if (c == '\\')
- break;
- result += c;
- }
- return result;
- }
- public string ParseLanguage(Language language)
- {
- switch(language)
- {
- case Language.French:
- return "fr";
- case Language.English:
- return "en";
- case Language.Japanese:
- return "jp";
- default:
- return "auto";
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement