亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

百度翻譯cs文件英文注釋

2019-11-14 13:43:49
字體:
來源:轉載
供稿:網友

原由:本人英語爛,沒辦法看不懂國外的代碼注釋!只能借助其他手段來助我一臂之力了. 雖然翻譯內容不是很準確,但好過什么都看不懂的強. 對吧?!

代碼有點亂有用的園友自個整理一下吧! 最近沒時間所以翻譯后內容保存還未實現,需不需要保存自個看著辦吧!過段時間再整理實現一下!這只是一個簡單的例子.

不足之處請大俠指出,在下感激不盡!

直接貼代碼:

 class PRogram    {        private readonly string appid = "XXXXXXXXXXXXXXXXXX";//APPID        private readonly string sec_key = "XXXXXXXXXXXXXXXXXXXX";//私鑰        private readonly string from = "en";        private readonly string to = "yue";        private readonly string url = "http://api.fanyi.baidu.com/api/trans/vip/translate?";        static void Main(string[] args)        {            new Program().Run();        }        private void Run()        {            string path = Directory.GetCurrentDirectory();            Console.WriteLine("起始目錄:" + path);            IList<FileInfo> files = GetFiles(path);            Console.WriteLine("File Size:" + files.Count);             ConcurrentQueue<FileInfo> cq = new ConcurrentQueue<FileInfo>();            Parallel.ForEach(files, (e) => { cq.Enqueue(e); });            Parallel.ForEach(cq, (e) => {                // 讀取cs文件內容                List<String> rcq = ReaderLine(e.FullName);                                Console.WriteLine(e.FullName + "翻譯中...");                // 遍歷cs文件代碼行                foreach (String q in rcq)                {                    if (!StringHandle.isNote(q)) continue;// 判斷是否是注釋                    string note = StringHandle.GetNoteValue(q);// 獲取注釋內容                    if (string.IsNullOrWhiteSpace(note)) continue;                    // 組織url參數                    //  string pars = GetUrlPars("2015063000000001", "12345678", "hello", from, to);                    string pars = GetUrlPars(appid, sec_key, note.Trim(), from, to);                    // 翻譯                    // 返回格式:{"from":"en","to":"zh","trans_result":[{"src":"using System;","dst":"/u4f7f/u7528/u7cfb/u7edf/uff1b"}]}                    string result = GetUrltoHtml(url + pars);                    //反序列化結果                    LanguageInfo info = Serialization<LanguageInfo>(result);                    if (info.IsNull)                    {                        ErrorInfo error = Serialization<ErrorInfo>(result);                        Console.WriteLine("---Error:" + error.error_code + " ---  " + error.error_msg + " --- " + error.CodeToMsg());                    }                    else                    {                        Console.WriteLine("原文:"+info.trans_result[0].src);                            Console.WriteLine("譯文:"+info.trans_result[0].dst);                        Console.WriteLine();                    }                                    }            });            Console.ReadKey();        }        private Random r = new Random(int.MaxValue);        /// <summary>        /// 拼接地址參數        /// </summary>        /// <param name="appid">APPID</param>        /// <param name="sec_key">私鑰</param>        /// <param name="q">翻譯query</param>        /// <param name="from"></param>        /// <param name="to"></param>        /// <returns></returns>        public string GetUrlPars(string appid,string sec_key,string q,string from,string to)        {            StringBuilder sb = new StringBuilder();            sb.Append("appid=" + appid);            // 隨機數            var salt = r.Next(1000000, int.MaxValue).ToString();            sb.Append("&salt=" + salt);            sb.Append("&from=" + from);            sb.Append("&to=" + to);            sb.Append("&q=" + HttpUtility.UrlEncode(q, Encoding.GetEncoding("GB2312")));                        //對 appid + 翻譯內容 + 隨機數 + 私鑰 進行md5加密            var sign = MD5Encrypt(appid + q + salt + sec_key, Encoding.Default);            sb.Append("&sign=" + sign);            return sb.ToString();        }        /// <summary>        /// 讀取文件        /// </summary>        /// <param name="path"></param>        /// <returns></returns>        public List<String> ReaderLine(string path)        {            StreamReader sr = new StreamReader(path, Encoding.Default);            List<String> lines = new List<string>();            string line;            while ((line = sr.ReadLine()) != null)            {                lines.Add(line);            }            sr.Close();            return lines;        }        /// <summary>        /// 反序列化JSON        /// </summary>        /// <param name="obj"></param>        /// <returns></returns>        private T Serialization<T>(string obj)where T:class        {            using (var mStream = new MemoryStream(Encoding.UTF8.GetBytes(obj)))            {                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));                T entity = serializer.ReadObject(mStream) as T;                return entity;            }        }        /// <summary>          /// 遍歷當前目錄及子目錄          /// </summary>          /// <param name="strPath">文件路徑</param>          /// <returns>所有文件</returns>          private static IList<FileInfo> GetFiles(string strPath)        {            List<FileInfo> lstFiles = new List<FileInfo>();            List<string> lstDirect = new List<string>();            lstDirect.Add(strPath);            DirectoryInfo diFliles = null;            GetDirectorys(strPath, ref lstDirect);            foreach (string str in lstDirect)            {                try                {                    diFliles = new DirectoryInfo(str);                    lstFiles.AddRange(diFliles.GetFiles("*.cs"));                }                catch                {                    continue;                }            }            return lstFiles;        }        private static void GetDirectorys(string strPath, ref List<string> lstDirect)        {            DirectoryInfo diFliles = new DirectoryInfo(strPath);            DirectoryInfo[] diArr = diFliles.GetDirectories();            //DirectorySecurity directorySecurity = null;              foreach (DirectoryInfo di in diArr)            {                try                {                    //directorySecurity = new DirectorySecurity(di.FullName, accessControlSections.Access);                      //if (!directorySecurity.AreAccessRulesProtected)                      //{                      lstDirect.Add(di.FullName);                    GetDirectorys(di.FullName, ref lstDirect);                    //}                  }                catch                {                    continue;                }            }        }        /// <summary>        /// MD5加密        /// </summary>        /// <param name="input">需要加密的字符串</param>        /// <param name="encode">字符的編碼</param>        /// <returns></returns>        public static string MD5Encrypt(string input, Encoding encode)        {            MD5 md5 = new MD5CryptoServiceProvider();            byte[] t = md5.ComputeHash(encode.GetBytes(input));            StringBuilder sb = new StringBuilder(32);            for (int i = 0; i < t.Length; i++)                sb.Append(t[i].ToString("x").PadLeft(2, '0'));            return sb.ToString();        }        /// <summary>          /// 傳入URL返回網頁的html代碼          /// </summary>          /// <param name="Url">URL</param>          /// <returns></returns>          public string GetUrltoHtml(string Url)        {            StringBuilder content = new StringBuilder();            try            {                //這一句一定要寫在創建連接的前面。使用回調的方法進行證書驗證。                  //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);                // 與指定URL創建HTTP請求                  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);                //創建證書文件                  //X509Certificate objx509 = new X509Certificate(System.Net.Mime.MediaTypeNames.application.StartupPath + "http://123.cer");                //添加到請求里                  //request.ClientCertificates.Add(objx509);                // 獲取對應HTTP請求的響應                  HttpWebResponse response = (HttpWebResponse)request.GetResponse();                // 獲取響應流                  Stream responseStream = response.GetResponseStream();                // 對接響應流(以"GBK"字符集)                  StreamReader sReader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));                // 開始讀取數據                  Char[] sReaderBuffer = new Char[256];                int count = sReader.Read(sReaderBuffer, 0, 256);                while (count > 0)                {                    String tempStr = new String(sReaderBuffer, 0, count);                    content.Append(tempStr);                    count = sReader.Read(sReaderBuffer, 0, 256);                }                // 讀取結束                  sReader.Close();            }            catch (Exception)            {                content = new StringBuilder("Runtime Error");            }            return content.ToString();        }     }
 /*     {"from":"en","to":"zh","trans_result":[{"src":"using System;","dst":"/u4f7f/u7528/u7cfb/u7edf/uff1b"}]}     */    [DataContract]    //翻譯語言結果    public class LanguageInfo    {        [DataMember]        public string from { get; set; }        [DataMember]        public string to { get; set; }        [DataMember]        public ResultInfo[] trans_result { get; set; }        public bool IsNull        {            get {                return (string.IsNullOrEmpty(from) && string.IsNullOrEmpty(to) && trans_result == null);        } }    }    [DataContract]    public class ResultInfo    {        [DataMember]        //原文        public string src{get;set;}        [DataMember]        //譯文        public string dst{get;set;}    }    /*     {"error_code":"54001","error_msg":"Invalid Sign"}     */    [DataContract]    //錯誤信息    public class ErrorInfo    {        [DataMember]        public string error_code { get; set; }        [DataMember]        public string error_msg { get; set; }        public string CodeToMsg()        {             switch (error_code)            {                case "52001":return "請求超時    重試";                case "52002":return "系統錯誤    重試";                 case "52003":return "未授權用戶      檢查您的appid 是否正確";                 case "54000":return "必填參數為空    檢查是否少傳參數";                 case "58000":return "客戶端IP非法    檢查個人資料里填寫的IP地址是否正確";                 case "54001":return "簽名錯誤    請檢查您的簽名生成方法";                 case "54003":return "訪問頻率受限    請降低您的調用頻率";                 case "58001":return "譯文語言方向不支持      檢查譯文語言是否在語言列表里";                 case "54004":return "賬戶余額不足    請前往管理控制平臺為賬戶充值";                default: return "完了,都不知道什么錯了!";            }        }    }
 public static class StringHandle    {        private static Regex regIsNote = new Regex(@"(///|//)");        private static Regex regGetNote = new Regex(@"(////s+)|((<|</)summary>)|((<|</)param>)|((<|</)returns>)");        /// <summary>        /// 是否注釋正文        /// </summary>        /// <param name="str">字符串</param>        /// <returns></returns>        public static bool isNote(string str)        {            return regIsNote.IsMatch(str);        }        /// <summary>        /// 獲取注釋值        /// </summary>        /// <param name="str">注釋</param>        /// <returns></returns>        public static string GetNoteValue(string str)        {            return regGetNote.Replace(str, "");        }    }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲日本欧美韩国| 国产精品96久久久久久又黄又硬| 日韩在线播放视频| 精品久久国产精品| 亚洲国产精品女人久久久| 国产成人激情视频| 国产一区二区在线免费视频| 欧美日韩性视频在线| 亚洲人成在线观看| 亚洲精品久久久久久久久久久久| 亚洲自拍在线观看| 午夜精品福利电影| 欧美影院成年免费版| 日韩欧美精品在线观看| 国产免费久久av| 中文国产成人精品| 亚洲国产精品va| 国产精品视频26uuu| 色偷偷偷亚洲综合网另类| 国产精品扒开腿做爽爽爽的视频| 日韩在线一区二区三区免费视频| 欧美成人中文字幕| 日韩成人高清在线| 精品一区二区三区三区| 这里只有视频精品| 欧美激情久久久久久| 亚洲伊人成综合成人网| 欧美激情二区三区| 欧美精品videofree1080p| 日韩免费观看高清| 精品日韩中文字幕| 亚洲自拍小视频免费观看| 日日狠狠久久偷偷四色综合免费| 性金发美女69hd大尺寸| 欧美激情三级免费| 欧美放荡办公室videos4k| 欧美日本啪啪无遮挡网站| 国产一区二区三区免费视频| 在线国产精品视频| 国产日韩欧美中文| 久久97精品久久久久久久不卡| 国产精品午夜国产小视频| 久久亚洲一区二区三区四区五区高| 97精品国产97久久久久久春色| 中文字幕亚洲一区二区三区| 在线电影中文日韩| 久久久国产精品亚洲一区| 日韩精品有码在线观看| 亚洲黄色成人网| 久久久久免费视频| 亚洲人成在线一二| 日韩精品在线观| 色婷婷亚洲mv天堂mv在影片| 久久人人爽亚洲精品天堂| 久久精品久久久久久| 亚洲国产成人91精品| 中文字幕日韩av综合精品| 国产丝袜视频一区| 日韩精品在线观看视频| 亚洲欧美另类国产| 91精品国产自产在线观看永久| 国产精品偷伦视频免费观看国产| 久久国产加勒比精品无码| 亚洲福利在线观看| 国内精品久久久久久久| 欧美黑人一区二区三区| 欧美一区三区三区高中清蜜桃| 欧美在线日韩在线| 国产日产久久高清欧美一区| 狠狠躁18三区二区一区| 日韩精品视频在线播放| 欧美精品videosex牲欧美| 欧洲亚洲在线视频| 欧美精品video| 91在线观看免费高清完整版在线观看| 欧美大片免费观看在线观看网站推荐| 国产啪精品视频网站| 26uuu日韩精品一区二区| 一本色道久久综合狠狠躁篇的优点| 中文字幕久久久av一区| 色偷偷综合社区| 国产亚洲日本欧美韩国| 97在线观看免费高清| 亚洲免费av电影| 午夜欧美大片免费观看| 欧美一级电影免费在线观看| 国模精品一区二区三区色天香| 国产日韩欧美在线视频观看| 亚洲成av人影院在线观看| 26uuu日韩精品一区二区| 欧美激情精品久久久久久| 国产性猛交xxxx免费看久久| 国产精品精品视频一区二区三区| 成人福利视频在线观看| 精品久久中文字幕| 91嫩草在线视频| 精品视频一区在线视频| 韩国19禁主播vip福利视频| 国产精品91久久| 97精品久久久| 亚洲国产成人爱av在线播放| 欧美一级视频一区二区| 日韩av免费在线| 亚洲欧美日韩视频一区| 91亚洲永久免费精品| 久久99精品久久久久久琪琪| 久久91精品国产91久久久| 欧美成人自拍视频| 国产suv精品一区二区三区88区| 欧美色欧美亚洲高清在线视频| 亚洲乱亚洲乱妇无码| 久久精视频免费在线久久完整在线看| 日本国产精品视频| 亚洲男女性事视频| 国产成人极品视频| 国产日本欧美一区二区三区| 日韩免费中文字幕| 久久久成人av| 69av视频在线播放| 97视频在线观看免费高清完整版在线观看| 久久久国产影院| 5566日本婷婷色中文字幕97| 久久精品中文字幕电影| 国产不卡av在线| 欧美亚洲第一页| 久久6精品影院| 亚洲国产精品女人久久久| 日韩欧美国产一区二区| 久久精品国产一区二区电影| 亚洲精品自在久久| 97精品视频在线播放| 精品亚洲夜色av98在线观看| 国产日韩欧美成人| 精品久久久久久久久久久| 亚洲乱亚洲乱妇无码| 欧美国产日韩xxxxx| 91视频国产一区| 亚洲欧美激情一区| 欧美疯狂性受xxxxx另类| 久久手机免费视频| 国产999精品久久久| 美女国内精品自产拍在线播放| 亚洲黄色片网站| 国产精品久久久久久久久久免费| 在线看日韩欧美| 国产日韩精品一区二区| 久久精品中文字幕| 亚洲精品自拍第一页| 日韩av电影中文字幕| 亚洲精品第一页| 亚洲va欧美va国产综合剧情| 97超级碰在线看视频免费在线看| 国产精品1234| 色99之美女主播在线视频| 亚洲精品国产综合区久久久久久久| 欧美成人免费一级人片100| 91最新在线免费观看| 中文字幕在线精品| 97香蕉久久超级碰碰高清版| 97精品一区二区三区| 久久精品久久久久久国产 免费| 成人免费大片黄在线播放| 久久精品视频免费播放| 国产亚洲欧洲在线|