吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15805|回复: 91
收起左侧

[原创工具] ===百度翻译Demo版 & 腾讯翻译Demo版 C#源代码【严禁修改后用于商业用途】===

[复制链接]
angelkyo 发表于 2018-3-21 21:22
本帖最后由 angelkyo 于 2018-3-30 14:53 编辑

sp180321_212015.png

sp180324_163004.png


成品: BaiduTranslate.rar (909.06 KB, 下载次数: 421)


源代码
https://pan.baidu.com/s/17KB1npgEoYy1a-BBQcHk4A
密码:t3xj

网盘源代码不需要sign和token值。
以下源码调用v2transapi,需要sign和token值,测试通过。。。

[C#] 纯文本查看 复制代码
     #region 百度Baidu翻译v2transapi,需要sign和token值

        //内容长度
        public string Content_Length(string text, string fromlang, string tolang, string sign, string token)
        {
            string s = "query=" + HttpUtility.UrlEncode(text).Replace("+", "%20") + "&from=" + fromlang + "&to=" + tolang + "&simple_means_flag=3&sign=" + sign + "&token=" + token;
            return s;
        }

        /// <summary>
        /// 百度翻译
        /// </summary>
        /// <param name="text">待翻译文本</param>
        /// <param name="fromLanguage">自动检测:auto</param>
        /// <param name="toLanguage">中文:zh,英文:en</param>
        /// <returns>翻译后文本</returns>
        public string 百度Baidu(string text, string fromLanguage, string toLanguage)
        {
            CookieContainer cc = new CookieContainer();
            string BaiduTransBaseUrl = "http://fanyi.baidu.com/";
            BaiduHead(BaiduTransBaseUrl, cc);
            var BaseResultHtml = GetBaiduBase(BaiduTransBaseUrl, cc);

            //在返回的HTML中正则匹配gtk 
            Regex re = new Regex(@"(?<=window.gtk = ')(.*?)(?=';)");
            var _gtk = re.Match(BaseResultHtml).ToString();
            //由gtk值获取sign值
            var sign = new get_tk().baidu_tk(text, _gtk);
            //获取token值
            Regex re2 = new Regex(@"(?<=token: ')(.*?)(?=',)");
            var tok = re2.Match(BaseResultHtml).ToString();

            string baiduTransUrl = "http://fanyi.baidu.com/v2transapi";
            var ResultHtml = GetBaiduHtml(baiduTransUrl, cc, "", Content_Length(text, fromLanguage, toLanguage, sign, tok));

            try
            {
                StringReader sr = new StringReader(ResultHtml);
                JsonTextReader jsonReader = new JsonTextReader(sr);
                JsonSerializer serializer = new JsonSerializer();
                var r = serializer.Deserialize<TransResult>(jsonReader);
                int len = r.trans_result.Data.Count;
                string s = "";
                for (int i = 0; i < len; i++)
                {
                    if (i + 1 != len)
                        s += r.trans_result.Data[i].Dst + "\r\n";
                    else
                        s += r.trans_result.Data[i].Dst;
                }
                return s;
            }
            catch
            {
                return "服务器返回异常,请重试。";
            }

        }


        public string BaiduHead(string url, CookieContainer cookie)
        {
            var html = "";
            var webRequest = WebRequest.Create(url) as HttpWebRequest;
            webRequest.Method = "HEAD";
            webRequest.CookieContainer = cookie;
            webRequest.Timeout = 20000;
            webRequest.Accept = "*/*";
            webRequest.Headers.Add("Accept-Encoding: gzip,deflate");
            webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)";
                        webRequest.GetResponse();
        }
        public string GetBaiduBase(string url, CookieContainer cookie)
        {
            var html = "";
            var webRequest = WebRequest.Create(url) as HttpWebRequest;
            webRequest.Method = "GET";
            webRequest.CookieContainer = cookie;
            webRequest.Timeout = 20000;
            webRequest.Accept = "*/*";
            webRequest.Headers.Add("Accept-Encoding: gzip,deflate");
            webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)";



            try
            {
                using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
                {
                    Stream st = webResponse.GetResponseStream();
                    if (webResponse.ContentEncoding.ToLower().Contains("gzip"))
                        st = new GZipStream(st, CompressionMode.Decompress);
                    using (var reader = new StreamReader(st, Encoding.UTF8))
                    {

                        html = reader.ReadToEnd();
                        reader.Close();
                        webResponse.Close();
                    }
                }
                return html;
            }
            catch
            {
                return null;
            }


        }
        public string GetBaiduHtml(string url, CookieContainer cookie, string refer, string content_length)
        {
            var html = "";
            var webRequest = WebRequest.Create(url) as HttpWebRequest;
            webRequest.Method = "POST";
            webRequest.CookieContainer = cookie;
            webRequest.Referer = refer;
            webRequest.Timeout = 20000;
            webRequest.Accept = "*/*";
            webRequest.Headers.Add("Accept-Language: zh-CN;q=0.8,en-US;q=0.6,en;q=0.4");
            webRequest.Headers.Add("Accept-Encoding: gzip,deflate");
            webRequest.Headers.Add("Accept-Charset: utf-8");
            webRequest.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
            webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)";
            webRequest.ServicePoint.Expect100Continue = false;
            webRequest.ProtocolVersion = new Version(1, 1);

            byte[] con_len_byte = Encoding.UTF8.GetBytes(content_length);
            webRequest.ContentLength = con_len_byte.Length;
            Stream requsetSteam = webRequest.GetRequestStream();
            requsetSteam.Write(con_len_byte, 0, con_len_byte.Length);
            requsetSteam.Close();

            try
            {
                using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
                {
                    Stream st = webResponse.GetResponseStream();
                    if (webResponse.ContentEncoding.ToLower().Contains("gzip"))
                        st = new GZipStream(st, CompressionMode.Decompress);
                    using (var reader = new StreamReader(st, Encoding.UTF8))
                    {

                        html = reader.ReadToEnd();
                        reader.Close();
                        webResponse.Close();
                    }
                }
                return html;
            }
            catch
            {
                return null;
            }


        }

        public class Data
        {
            public string Dst { get; set; }
            public string Src { get; set; }
        }
        public class Trans_result
        {
            public string From { get; set; }
            public string To { get; set; }
            public List<Data> Data { get; set; }
        }
        public class TransResult
        {
            public Trans_result trans_result
            {
                get;
                set;
            }
        }

    #endregion


================================================腾讯翻译===========================================
腾讯翻译不支持 英文  到 日,韩,,,可以中文  到  日韩。
sp180329_165758.png

成品: TencentTranslate.rar (909.71 KB, 下载次数: 90)
源代码:
https://pan.baidu.com/s/17KB1npgEoYy1a-BBQcHk4A
密码:t3xj

免费评分

参与人数 29吾爱币 +32 热心值 +29 收起 理由
268296 + 1 + 1 热心回复!
沧海一数 + 1 + 1 谢谢@Thanks!能出个安卓版的就更好了
Lyx990106 + 1 + 1 谢谢@Thanks!
dulaine + 1 + 1 我很赞同!
何必作践自己 + 1 + 1 谢谢@Thanks!
savin + 1 + 1 谢谢@Thanks!
szqever + 1 + 1 谢谢@Thanks!
confut + 1 + 1 谢谢@Thanks!
__S + 1 + 1 我很赞同!
dzj0821 + 1 + 1 我很赞同!
w1503790 + 1 + 1 谢谢@Thanks!
project_ms + 1 + 1 谢谢@Thanks!
cy4369412 + 1 + 1 热心回复!
十万水军 + 1 + 1 热心回复!
hippojacky + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
baojingchuan + 1 我很赞同!
大菲哥abc + 1 + 1 谢谢@Thanks!
神魔月瞳 + 1 + 1 我很赞同!
onion718 + 1 + 1 谢谢@Thanks!
痕迹丶 + 1 + 1 谢谢@Thanks!
音符- + 1 + 1 谢谢@Thanks!
pbgz + 1 + 1 谢谢@Thanks!
vicizzz + 1 + 1 谢谢@Thanks!
jnez112358 + 1 谢谢@Thanks!
zuiai125520 + 1 + 1 要是还有手机版就更妙了
笙若 + 1 + 1 谢谢@Thanks!
Enjoy1024 + 1 + 1 谢谢@Thanks!
云在天 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zx3224649 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| angelkyo 发表于 2018-3-23 00:14
caca22 发表于 2018-3-23 00:02
真的很棒!要是能再整合其他就完美了。

===Google翻译小工具v2.3【添加语音功能&&OCR识别】【2018年3月17日】
https://www.52pojie.cn/thread-699283-1-1.html
(出处: 吾爱破解论坛)
 楼主| angelkyo 发表于 2018-3-21 21:42
13319937326 发表于 2018-3-21 21:40
楼主 你的这个是靠接口还是纯翻译

名称都叫百度翻译了,你说靠什么?难不成一个999KB的软件能把百度翻译服务器里的东东全集成进去?
bayaoliu 发表于 2018-3-21 21:30 来自手机
zx3224649 发表于 2018-3-21 21:32
谢谢楼主分享,
memory947 发表于 2018-3-21 21:35
感谢分享,能有浏览器插件就更好了
13319937326 发表于 2018-3-21 21:40
楼主 你的这个是靠接口还是纯翻译
zhangyouhao 发表于 2018-3-21 21:46
!谢谢楼主的分享!试试!
zhym6339 发表于 2018-3-21 21:58
太强大了!!!十分感谢!
ssamana 发表于 2018-3-21 22:00
楼主好东西啊,表示支持
LightSylcanus 发表于 2018-3-21 22:24
做多个页面Google放进去吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 08:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表