コード例 #1
0
        public string Translate(string sourceText, string desLang, string srcLang)
        {
            if (sourceText == "" || desLang == "" || srcLang == "")
            {
                errorInfo = "Param Missing";
                return(null);
            }

            if (desLang == "zh")
            {
                desLang = "zh_cn";
            }
            if (srcLang == "zh")
            {
                srcLang = "zh_cn";
            }

            if (desLang == "jp")
            {
                desLang = "ja";
            }
            if (srcLang == "jp")
            {
                srcLang = "ja";
            }

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

            string trans_type = srcLang + "2" + desLang;

            trans_type = trans_type.ToUpper();
            string url = "https://fanyi.youdao.com/translate?&doctype=json&type=" + trans_type + "&i=" + q;

            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);
            }

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

            if (oinfo.errorCode == 0)
            {
                //得到翻译结果
                if (oinfo.translateResult.Count == 1)
                {
                    return(string.Join("", oinfo.translateResult[0].Select(x => x.tgt)));
                }
                else
                {
                    errorInfo = "UnknownError";
                    return(null);
                }
            }
            else
            {
                errorInfo = "ErrorID:" + oinfo.errorCode;
                return(null);
            }
        }
コード例 #2
0
        public string Translate(string sourceText, string desLang, string srcLang)
        {
            if (sourceText == "" || desLang == "" || srcLang == "")
            {
                errorInfo = "Param Missing";
                return(null);
            }

            if (desLang == "zh")
            {
                desLang = "zh_cn";
            }
            if (srcLang == "zh")
            {
                srcLang = "zh_cn";
            }

            if (desLang == "jp")
            {
                desLang = "ja";
            }
            if (srcLang == "jp")
            {
                srcLang = "ja";
            }

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

            string trans_type = srcLang + "2" + desLang;

            trans_type = trans_type.ToUpper();
            string url = "http://fanyi.youdao.com/translate?&doctype=json&type=" + trans_type + "&i=" + q;

            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);
            }

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

            if (oinfo.errorCode == 0)
            {
                string ret = "";

                //得到翻译结果
                if (oinfo.translateResult.Count == 1)
                {
                    for (int i = 0; i < oinfo.translateResult[0].Count; i++)
                    {
                        ret += oinfo.translateResult[0][i].tgt;
                    }
                    return(ret);
                }
                else
                {
                    errorInfo = "UnknownError";
                    return(null);
                }
            }
            else
            {
                errorInfo = "ErrorID:" + oinfo.errorCode;
                return(null);
            }
        }