Пример #1
0
        public static List <GTResp> GetGTResponceAll(string[] tls, string[] qs, string[] sls)
        {
            var gtrlist = new List <GTResp>();

            try {
                for (int i = 0; i != tls.Length; i++)
                {
                    // corrects GTLink responce encoding.
                    client.Headers["User-Agent"] = "User-Agent: Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20180501 Firefox/60.0";
                    var url = TranslatePanel.GTLink + "&q=" + HttpUtility.UrlPathEncode(qs[i].Replace(" ", "%20")) +
                              "&sl=" + sls[i] + "&tl=" + tls[i];
                    Debug.WriteLine("url: " + url);
                    var raw_array = Encoding.UTF8.GetString(client.DownloadData(url));
                    Debug.WriteLine("RAW:" + raw_array);
                    var    aur = new Auray(raw_array);
                    var    gtresp = new GTResp();
                    string src = "", tr = "";
                    var    aur_dim_2 = new Auray(aur[0]);
                    for (int m = 0; m != aur_dim_2.len + 1; m++)                   // combine all responce from all dimensions
                    {
                        var s = aur_dim_2[m, 1];
                        src += s.Substring(1, s.Length - 2);
                        s    = aur_dim_2[m, 0];
                        tr  += s.Substring(1, s.Length - 2);
                    }
                    gtresp.source      = src;
                    gtresp.translation = tr;
                    var det_l = aur[2];
                    det_l             = det_l.Substring(1, det_l.Length - 2);
                    gtresp.speech_url = GTSpeechLink + "&q=" + HttpUtility.UrlEncode(tr) + "&sl=" + det_l + "&tl=" + tls[i];
//					Debug.WriteLine(gtresp.speech_url);
                    if (sls[i] == "auto")
                    {
                        gtresp.auto_detect = true;
                    }
                    gtresp.src_lang  = det_l;
                    gtresp.targ_lang = tls[i];
                    gtrlist.Add(gtresp);
                }
            } catch (Exception e) { MMain.mahou._TranslatePanel.GTRespError(e.Message); }
            return(gtrlist);
        }
Пример #2
0
        public static List <GTResp> GetGTResponceAll(string[] tls, string[] qs, string[] sls)
        {
            var gtrlist = new List <GTResp>();

            try {
                for (int i = 0; i != tls.Length; i++)
                {
                    var gl = GTLink;
                    if (useNA)
                    {
                        gl = GTNALink;
                    }
                    // corrects GTLink responce encoding.
                    client.Headers["User-Agent"] = "AndroidTranslate/5.3.0.RC02.130475354-53000263 5.1 phone TRANSLATE_OPM5_TEST_1";
                    var url = gl + "&q=" + HttpUtility.UrlPathEncode(
                        qs[i].Replace(" ", "%20").Replace("\r", "%0D").Replace("\n", "%0A")) +
                              "&sl=" + sls[i] + "&tl=" + tls[i];
                    Debug.WriteLine("url: " + url);
                    var raw_array = Encoding.UTF8.GetString(client.DownloadData(url));
                    Debug.WriteLine("RAW:" + raw_array);
                    var    det_l = "";
                    var    gtresp = new GTResp();
                    string src = "", tr = "", strc = "", trc = "";
                    if (!useNA)
                    {
                        var aur       = new Auri(raw_array);
                        var aur_dim_2 = new Auri(aur["^0"]);
                        var len       = new Auray(aur.raw).len;
                        for (int m = 0; m != len + 1; m++)                       // combine all responce from all dimensions
                        {
                            var s = aur_dim_2["^" + m, "^" + 1];
                            src += s.Substring(1, s.Length - 2);
                            s    = aur_dim_2["^" + m, "^" + 0];
                            tr  += s.Substring(1, s.Length - 2);
                        }
                        det_l = aur["^2"];
                    }
                    else
                    {
                        Debug.WriteLine("NA MODE :)");
                        var auri  = new Auri(raw_array);
                        var au_se = new Auri(auri["sentences"]);
                        src = dosen(100, au_se, "orig");
//						src = s.Substring(1, s.Length-2);
                        tr = dosen(100, au_se, "trans");
                        if (TRANSCRIPTION)
                        {
                            trc  = dosen(100, au_se, "translit");
                            strc = dosen(100, au_se, "src_translit");
                        }
//						Debug.WriteLine(au_se["^1", "src_translit"]);
//						s = au_se["^0", "trans"];
//						tr = s.Substring(1, s.Length-2);
                        det_l = auri["ld_result", "srclangs", "^0"];;
                    }
                    gtresp.source       = src;
                    gtresp.translation  = tr;
                    gtresp.src_transcr  = strc;
                    gtresp.targ_transcr = trc;
//					Debug.WriteLine("trc " + trc + " strc " + strc);
                    det_l             = det_l.Substring(1, det_l.Length - 2);
                    gtresp.speech_url = GTSpeechLink + "&q=" + HttpUtility.UrlEncode(tr) + "&sl=" + det_l + "&tl=" + tls[i];
//					Debug.WriteLine(gtresp.speech_url);
                    if (sls[i] == "auto")
                    {
                        gtresp.auto_detect = true;
                    }
                    gtresp.src_lang  = det_l;
                    gtresp.targ_lang = tls[i];
                    gtrlist.Add(gtresp);
                }
            } catch (Exception e) { MMain.mahou._TranslatePanel.GTRespError(e.Message /*+e.StackTrace*/); }
            return(gtrlist);
        }