Advertisement
HITOA

Google translate c#

Dec 25th, 2020
1,318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.48 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Net.Http;
  7.  
  8. namespace Requester
  9. {
  10.     enum Language
  11.     {
  12.         Auto,
  13.         French,
  14.         English,
  15.         Japanese
  16.     }
  17.     class Translator
  18.     {
  19.         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";
  20.  
  21.         Language src;
  22.         Language dst;
  23.         public Translator(Language src, Language dst)
  24.         {
  25.             this.src = src;
  26.             this.dst = dst;
  27.         }
  28.         public string Translate(string toTranslate)
  29.         {
  30.             string translatedString;
  31.  
  32.             Dictionary<string, string> parameters = new Dictionary<string, string>();
  33.  
  34.             parameters.Add("f.req", $"[[[\"MkEWBc\",\"[[\\\"{toTranslate}\\\",\\\"{ParseLanguage(src)}\\\",\\\"{ParseLanguage(dst)}\\\",true],[null]]\", null, \"generic\"]]]");
  35.             //parameters.Add("at", "AD08yZna3jZ2xQRbOG4dFZokrfl9:1608937889401");
  36.  
  37.             using (HttpClient client = new HttpClient())
  38.             {
  39.                 FormUrlEncodedContent encodedParameters = new FormUrlEncodedContent(parameters);
  40.                 Task<HttpResponseMessage> responseMessage = client.PostAsync(Translator.url, encodedParameters);
  41.                 translatedString = ParseOutput(responseMessage.Result.Content.ReadAsStringAsync().Result);
  42.             }
  43.  
  44.             return translatedString;
  45.         }
  46.         public string ParseOutput(string output)
  47.         {
  48.             int start = output.IndexOf(",[\\\"");
  49.  
  50.             string parseOutput = output.Substring(start + 4, output.Length - start - 4);
  51.  
  52.             string result = String.Empty;
  53.  
  54.             foreach(char c in parseOutput)
  55.             {
  56.                 if (c == '\\')
  57.                     break;
  58.                 result += c;
  59.             }
  60.  
  61.             return result;
  62.         }
  63.         public string ParseLanguage(Language language)
  64.         {
  65.             switch(language)
  66.             {
  67.                 case Language.French:
  68.                     return "fr";
  69.                 case Language.English:
  70.                     return "en";
  71.                 case Language.Japanese:
  72.                     return "jp";
  73.                 default:
  74.                     return "auto";
  75.             }
  76.         }
  77.     }
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement