国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

csharp:百度翻譯

2019-11-14 13:44:28
字體:
供稿:網(wǎng)友

 

參考:http://api.fanyi.baidu.com/api/trans/PRoduct/index

http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E7%99%BE%E5%BA%A6%E7%BF%BB%E8%AF%91API

winform:

    /// <summary>    /// 涂聚文    /// </summary>    public partial class Form5 : Form    {        TranClass tranClass = new TranClass();        string url = "";        string youAPI_Id = "geovindu";        /// <summary>        ///         /// </summary>        /// <returns></returns>        DataTable setLanguage()        {            DataTable dt = new DataTable();            dt.Columns.Add("id", typeof(int));            dt.Columns.Add("name", typeof(string));            dt.Rows.Add(1, "中文--英文");            dt.Rows.Add(2, "英文--中文");            dt.Rows.Add(3, "中文--日文");            dt.Rows.Add(4, "日文--中文");            dt.Rows.Add(5, "中文--韓文");            dt.Rows.Add(6, "韓文--中文");            dt.Rows.Add(7, "西班牙文--中文");            dt.Rows.Add(8, "中文--西班牙文");            return dt;        }        /// <summary>        ///         /// </summary>        public Form5()        {            InitializeComponent();        }        /// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void Form5_Load(object sender, EventArgs e)        {            this.cbxTranslateChange.DataSource = setLanguage();            this.cbxTranslateChange.ValueMember = "id";            this.cbxTranslateChange.DisplayMember = "name";        }        /// <summary>        /// 翻譯        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void button1_Click(object sender, EventArgs e)        {            WebClient client = new WebClient();  //引用System.Net            string fromTranslate = tbxFromContent.Text; //翻譯前的內(nèi)容            if (!string.IsNullOrEmpty(fromTranslate))            {                //client_id為自己的api_id,q為翻譯對象,from為翻譯語言,to為翻譯后語言                string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate?client_id={0}&q={1}&from={2}&to={3}", youAPI_Id, fromTranslate, tranClass.From, tranClass.To);                var buffer = client.DownloadData(url);                string result = Encoding.UTF8.GetString(buffer);                StringReader sr = new StringReader(result);                JsonTextReader jsonReader = new JsonTextReader(sr); //引用Newtonsoft.Json 自帶                JsonSerializer serializer = new JsonSerializer();                var r = serializer.Deserialize<TranClass>(jsonReader); //因為獲取后的為json對象 ,實行轉(zhuǎn)換                tbxToContent.Text = r.Trans_result[0].dst;  //dst為翻譯后的值            }        }        /// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void cbxTranslateChange_SelectedIndexChanged(object sender, EventArgs e)        {            ComboBox comboBox = sender as ComboBox;            switch (comboBox.SelectedIndex)            {                case 1:                    tranClass.From = "zh";                    tranClass.To = "en";                    break;                case 2:                    tranClass.From = "en";                    tranClass.To = "zh";                    break;                case 3:                    tranClass.From = "zh";                    tranClass.To = "jp";                    break;                case 4:                    tranClass.From = "jp";                    tranClass.To = "zh";                    break;                case 5:                    tranClass.From = "zh";                    tranClass.To = "kor";                    break;                case 6:                    tranClass.From = "kor";                    tranClass.To = "zh";                    break;                case 7:                    tranClass.From = "zh";                    tranClass.To = "spa";                    break;                case 8:                    tranClass.From = "spa";                    tranClass.To = "zh";                    break;                default:                    tranClass.From = "auto";                    tranClass.To = "auto";                    break;            }        }    }    public class TranClass    {        public string From { get; set; }        public string To { get; set; }        public List<Trans_result> Trans_result { get; set; }    }    public class Trans_result    {        public string src { get; set; }        public string dst { get; set; }    }    /*          語言簡寫	名稱auto	自動檢測zh	中文en	英語yue	粵語wyw	文言文jp	日語kor	韓語fra	法語spa	西班牙語th	泰語ara	阿拉伯語ru	俄語pt	葡萄牙語de	德語it	意大利語el	希臘語nl	荷蘭語pl	波蘭語bul	保加利亞語est	愛沙尼亞語dan	丹麥語fin	芬蘭語cs	捷克語rom	羅馬尼亞語slo	斯洛文尼亞語swe	瑞典語hu	匈牙利語cht	繁體中文     */}

  

 

webform:

 TranClass tranClass = new TranClass();        string url = "www.dusystem.com";        string youAPI_Id = "geovindu";        /// <summary>        /// 涂聚文        /// </summary>        /// <returns></returns>        DataTable setLanguage()        {            DataTable dt = new DataTable();            dt.Columns.Add("id", typeof(int));            dt.Columns.Add("name", typeof(string));            dt.Rows.Add(1, "中文--英文");            dt.Rows.Add(2, "英文--中文");            dt.Rows.Add(3, "中文--日文");            dt.Rows.Add(4, "日文--中文");            dt.Rows.Add(5, "中文--韓文");            dt.Rows.Add(6, "韓文--中文");            dt.Rows.Add(7, "西班牙文--中文");            dt.Rows.Add(8, "中文--西班牙文");            return dt;        }        /// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                this.DropDownList1.DataSource = setLanguage();                this.DropDownList1.DataTextField = "name";                this.DropDownList1.DataValueField = "id";                this.DropDownList1.DataBind();                //DropDownList1.SelectedIndex = 0;            }        }        /// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        protected void Button1_Click(object sender, EventArgs e)        {            int k = int.Parse(DropDownList1.SelectedValue);            switch (k)            {                case 1:                    tranClass.From = "zh";                    tranClass.To = "en";                    break;                case 2:                    tranClass.From = "en";                    tranClass.To = "zh";                    break;                case 3:                    tranClass.From = "zh";                    tranClass.To = "jp";                    break;                case 4:                    tranClass.From = "jp";                    tranClass.To = "zh";                    break;                case 5:                    tranClass.From = "zh";                    tranClass.To = "kor";                    break;                case 6:                    tranClass.From = "kor";                    tranClass.To = "zh";                    break;                case 7:                    tranClass.From = "zh";                    tranClass.To = "spa";                    break;                case 8:                    tranClass.From = "spa";                    tranClass.To = "zh";                    break;                default:                    tranClass.From = "auto";                    tranClass.To = "auto";                    break;            }            WebClient client = new WebClient();  //引用System.Net            string fromTranslate = this.TextBox1.Text; //翻譯前的內(nèi)容            if (object.Equals(tranClass, null))            {                tranClass.From = "zh";                tranClass.To = "en";            }            if (!string.IsNullOrEmpty(fromTranslate))            {                //client_id為自己的api_id,q為翻譯對象,from為翻譯語言,to為翻譯后語言                string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate?client_id={0}&q={1}&from={2}&to={3}", youAPI_Id, fromTranslate, tranClass.From, tranClass.To);                var buffer = client.DownloadData(url);                string result = Encoding.UTF8.GetString(buffer);                StringReader sr = new StringReader(result);                JsonTextReader jsonReader = new JsonTextReader(sr); //引用Newtonsoft.Json 自帶                while (jsonReader.Read())                {                    //Response.Write(jsonReader.Value.ToString() + "<br/>");//jsonReader.TokenType.ToString() + "" + jsonReader.ValueType.ToString() + "" +                 }                Response.Write(CallInterface(fromTranslate, tranClass.From, tranClass.To));                var j = JsonConvert.DeserializeObject<TranClass>(result);                //JsonSerializer serializer = new JsonSerializer();                //TranClass p1 = (TranClass)serializer.Deserialize(new JsonTextReader(sr), typeof(TranClass));                //TranClass r = serializer.Deserialize<TranClass>(jsonReader); //因為獲取后的為json對象 ,實行轉(zhuǎn)換  反序列化 錯誤                //this.TextBox2.Text = r.Trans_result[0].dst;  //dst為翻譯后的值                if (!object.Equals(j, null))                {                    this.TextBox2.Text = j.Trans_result[0].dst;                }            }        }                /// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)        {                        switch (DropDownList1.SelectedIndex)            {                case 0:                    tranClass.From = "zh";                    tranClass.To = "en";                    break;                case 1:                    tranClass.From = "en";                    tranClass.To = "zh";                    break;                case 2:                    tranClass.From = "zh";                    tranClass.To = "jp";                    break;                case 3:                    tranClass.From = "jp";                    tranClass.To = "zh";                    break;                case 4:                    tranClass.From = "zh";                    tranClass.To = "kor";                    break;                case 5:                    tranClass.From = "kor";                    tranClass.To = "zh";                    break;                case 6:                    tranClass.From = "zh";                    tranClass.To = "spa";                    break;                case 7:                    tranClass.From = "spa";                    tranClass.To = "zh";                    break;                default:                    tranClass.From = "auto";                    tranClass.To = "auto";                    break;            }        }        /// <summary>        /// 請求百度接口        ///         /// https://github.com/lbv/litjson        /// </summary>        /// <param name="sub">要翻譯的文本</param>        /// <param name="from">from語言</param>        /// <param name="to">翻譯為語言</param>        /// <returns></returns>        private string CallInterface(string sub, string from, string to)        {            HttpContext.Current.application.Lock();            if (HttpContext.Current.Application["baidu"] == null)            {                HttpContext.Current.Application["baidu"] = 1;            }            else            {                HttpContext.Current.Application["baidu"] = (int)HttpContext.Current.Application["baidu"] + 1;            }            HttpContext.Current.Application.UnLock();            string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate?client_id={0}&q={1}&from={2}&to={3}", youAPI_Id, sub, from, to);            string down = "", result = "";            try            {                WebClient wc = new WebClient();                down = wc.DownloadString(url);            }            catch (Exception)            {            }            JsonData jd = JsonMapper.ToObject(down);            if (JsonDataContainsKey(jd, "error_code"))            {                result += sub;            }            else            {                JsonData jdResult = jd["trans_result"];                for (int j = 0; j < jdResult.Count; j++)                {                    JsonData jdDst = jdResult[j]["dst"];                    result += jdDst.ToString();                }            }            return result;        }        /// <summary>        ///         /// </summary>        /// <param name="data"></param>        /// <param name="key"></param>        /// <returns></returns>        public bool JsonDataContainsKey(JsonData data, string key)        {            bool result = false;            if (data == null)                return result;            if (!data.IsObject)            {                return result;            }            IDictionary tdictionary = data as IDictionary;            if (tdictionary == null)                return result;            if (tdictionary.Contains(key))            {                result = true;            }            return result;        }    }    /// <summary>    ///     /// </summary>    public class TranClass    {        public string From { get; set; }        public string To { get; set; }        public List<Trans_result> Trans_result { get; set; }    }    /// <summary>    ///     /// </summary>    public class Trans_result    {        /// <summary>        /// 原文        /// </summary>        public string src { get; set; }        /// <summary>        /// 翻譯后的值        /// </summary>        public string dst { get; set; }    }    /*     {"from":"zh","to":"en","trans_result":[{"src":"/u4e2d/u56fd","dst":"China"}]}     */}

  


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安阳市| 延津县| 绍兴市| 民乐县| 周至县| 溆浦县| 保山市| 上蔡县| 鲜城| 定边县| 锡林郭勒盟| 长海县| 吉林省| 灵璧县| 南通市| 鹤岗市| 吴旗县| 桂平市| 红河县| 遂川县| 北宁市| 秭归县| 台州市| 曲麻莱县| 南川市| 阿克| 林西县| 嵊泗县| 鄂托克前旗| 彰化县| 阜新| 曲周县| 晋州市| 张家川| 武城县| 班玛县| 建昌县| 虹口区| 浦江县| 大安市| 灌云县|