Beispiel #1
0
        public async Task <string> TranslateAsync(string sourceText, string desLang, string srcLang)
        {
            if (sourceText == "" || desLang == "" || srcLang == "")
            {
                errorInfo = "Param Missing";
                return(null);
            }

            if (desLang == "kr")
            {
                desLang = "kor";
            }
            if (srcLang == "kr")
            {
                srcLang = "kor";
            }
            if (desLang == "fr")
            {
                desLang = "fra";
            }
            if (srcLang == "fr")
            {
                srcLang = "fra";
            }

            // 原文
            string q = HttpUtility.UrlEncode(sourceText);
            string retString;

            var url = new StringBuilder()
                      .Append("https://v1.alapi.cn/api/fanyi?")
                      .Append("q=").Append(q)
                      .Append("&from=").Append(srcLang)
                      .Append("&to=").Append(desLang);

            var hc = CommonFunction.GetHttpClient();

            try
            {
                retString = await hc.GetStringAsync(url.ToString());
            }
            catch (System.Net.Http.HttpRequestException ex)
            {
                errorInfo = ex.Message;
                return(null);
            }
            catch (System.Threading.Tasks.TaskCanceledException ex)
            {
                errorInfo = ex.Message;
                return(null);
            }

            AliapiTransResult oinfo = JsonConvert.DeserializeObject <AliapiTransResult>(retString);

            if (oinfo.msg == "success")
            {
                //得到翻译结果
                if (oinfo.data.trans_result.Count == 1)
                {
                    return(string.Join("", oinfo.data.trans_result.Select(x => x.dst)));
                }
                else
                {
                    errorInfo = "UnknownError";
                    return(null);
                }
            }
            else
            {
                errorInfo = "Error:" + oinfo.msg;
                return(null);
            }
        }
        public string Translate(string sourceText, string desLang, string srcLang)
        {
            if (sourceText == "" || desLang == "" || srcLang == "")
            {
                errorInfo = "Param Missing";
                return(null);
            }

            if (desLang == "kr")
            {
                desLang = "kor";
            }
            if (srcLang == "kr")
            {
                srcLang = "kor";
            }
            if (desLang == "fr")
            {
                desLang = "fra";
            }
            if (srcLang == "fr")
            {
                srcLang = "fra";
            }

            // 原文
            string q = sourceText;
            string retString;


            string url = "https://v1.alapi.cn/api/fanyi?q=" + q + "&from=" + srcLang + "&to=" + desLang;

            var hc = CommonFunction.GetHttpClient();

            try
            {
                retString = hc.GetStringAsync(url).GetAwaiter().GetResult();
            }
            catch (System.Net.Http.HttpRequestException ex)
            {
                errorInfo = ex.Message;
                return(null);
            }
            catch (System.Threading.Tasks.TaskCanceledException ex)
            {
                errorInfo = ex.Message;
                return(null);
            }

            AliapiTransResult oinfo = JsonConvert.DeserializeObject <AliapiTransResult>(retString);

            if (oinfo.msg == "success")
            {
                //得到翻译结果
                if (oinfo.data.trans_result.Count == 1)
                {
                    return(string.Join("", oinfo.data.trans_result.Select(x => x.dst)));
                }
                else
                {
                    errorInfo = "UnknownError";
                    return(null);
                }
            }
            else
            {
                errorInfo = "Error:" + oinfo.msg;
                return(null);
            }
        }
Beispiel #3
0
        public string Translate(string sourceText, string desLang, string srcLang)
        {
            if (sourceText == "" || desLang == "" || srcLang == "")
            {
                errorInfo = "Param Missing";
                return(null);
            }

            if (desLang == "kr")
            {
                desLang = "kor";
            }
            if (srcLang == "kr")
            {
                srcLang = "kor";
            }
            if (desLang == "fr")
            {
                desLang = "fra";
            }
            if (srcLang == "fr")
            {
                srcLang = "fra";
            }

            // 原文
            string q = sourceText;
            string retString;


            string url = "https://v1.alapi.cn/api/fanyi?q=" + q + "&from=" + srcLang + "&to=" + desLang;

            var request = (HttpWebRequest)WebRequest.Create(url);

            request.Method    = "GET";
            request.UserAgent = null;
            request.Timeout   = 6000;
            try
            {
                HttpWebResponse response         = (HttpWebResponse)request.GetResponse();
                Stream          myResponseStream = response.GetResponseStream();
                StreamReader    myStreamReader   = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                retString = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
            }
            catch (WebException ex)
            {
                errorInfo = "Request Timeout";
                return(null);
            }

            AliapiTransResult oinfo = JsonConvert.DeserializeObject <AliapiTransResult>(retString);

            if (oinfo.msg == "success")
            {
                string ret = "";

                //得到翻译结果
                if (oinfo.data.trans_result.Count == 1)
                {
                    for (int i = 0; i < oinfo.data.trans_result.Count; i++)
                    {
                        ret += oinfo.data.trans_result[i].dst;
                    }
                    return(ret);
                }
                else
                {
                    errorInfo = "UnknownError";
                    return(null);
                }
            }
            else
            {
                errorInfo = "Error:" + oinfo.msg;
                return(null);
            }
        }