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

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

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

            string trans_type = srcLang + "2" + desLang;

            string url = "https://api.interpreter.caiyunai.com/v1/translator";
            //json参数
            string jsonParam = JsonConvert.SerializeObject(new Dictionary <string, object>
            {
                { "source", new string[] { q } },
                { "trans_type", trans_type },
                { "request_id", "demo" },
                { "detect", true }
            });

            var hc  = CommonFunction.GetHttpClient();
            var req = new StringContent(jsonParam, null, "application/json");

            req.Headers.Add("X-Authorization", "token " + caiyunToken);
            try
            {
                retString = await(await hc.PostAsync(url, req)).Content.ReadAsStringAsync();
            }
            catch (System.Net.Http.HttpRequestException ex)
            {
                errorInfo = ex.Message;
                return(null);
            }
            catch (System.Threading.Tasks.TaskCanceledException ex)
            {
                errorInfo = ex.Message;
                return(null);
            }
            finally
            {
                req.Dispose();
            }

            CaiyunTransResult oinfo;

            try
            {
                oinfo = JsonConvert.DeserializeObject <CaiyunTransResult>(retString);
            }
            catch {
                errorInfo = "JsonConvert Error";
                return(null);
            }

            if (oinfo.target?.Length >= 1)
            {
                //得到翻译结果
                return(string.Join("", oinfo.target.Select(x => Regex.Unescape(x))));
            }
            else
            {
                errorInfo = "ErrorInfo:" + oinfo.message;
                return(null);
            }
        }
示例#2
0
        private string errorInfo; //错误信息

        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;

            Random rd   = new Random();
            string salt = rd.Next(100000).ToString();

            string sign = CommonFunction.EncryptString(appId + q + salt + secretKey);
            var    sb   = new StringBuilder("https://api.fanyi.baidu.com/api/trans/vip/translate?")
                          .Append("q=").Append(HttpUtility.UrlEncode(q))
                          .Append("&from=").Append(srcLang)
                          .Append("&to=").Append(desLang)
                          .Append("&appid=").Append(appId)
                          .Append("&salt=").Append(salt)
                          .Append("&sign=").Append(sign);
            string url = sb.ToString();

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

            request.Method      = "GET";
            request.ContentType = "text/html;charset=UTF-8";
            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);
            }

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

            if (oinfo.error_code == null || oinfo.error_code == "52000")
            {
                //得到翻译结果
                if (oinfo.trans_result.Count == 1)
                {
                    return(oinfo.trans_result[0].dst);
                }
                else
                {
                    errorInfo = "UnknownError";
                    return(null);
                }
            }
            else
            {
                errorInfo = "ErrorID:" + oinfo.error_code;
                return(null);
            }
        }
示例#3
0
        public string Translate(string sourceText, string desLang, string srcLang)
        {
            if (sourceText == "" || desLang == "" || srcLang == "")
            {
                errorInfo = "Param Missing";
                return(null);
            }


            // 原文
            string q = sourceText;

            string retString;

            Random rd   = new Random();
            string salt = rd.Next(100000).ToString();

            string url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate?";

            string req = "";

            req += "app_id=" + appId;
            req += "&nonce_str=" + salt;
            req += "&source=" + srcLang;
            req += "&target=" + desLang;
            req += "&text=" + HttpUtility.UrlEncode(q).ToUpper();
            req += "&time_stamp=" + CommonFunction.GetTimeStamp();
            req += "&sign=" + CommonFunction.EncryptString(req + "&app_key=" + appKey).ToUpper();

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + req);

            request.Method      = "GET";
            request.ContentType = "text/html;charset=UTF-8";
            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);
            }

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

            if (oinfo.ret == "0")
            {
                //得到翻译结果
                return(oinfo.data.target_text);
            }
            else
            {
                errorInfo = "ErrorID:" + oinfo.ret + " ErrorInfo:" + oinfo.msg;
                return(null);
            }
        }