日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

C#借助谷歌翻译实现翻译小工具(一)基本功能实现

發布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 C#借助谷歌翻译实现翻译小工具(一)基本功能实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

軟件效果:

實現原理很簡單,就是封裝谷歌翻譯網站:http://translate.google.cn/,一個WebBrowser“肢解”谷歌翻譯網站的HtmlElement元素,刪除不要的,留下需要的就是了,沒什么難度

實現步驟:

一個winform窗體+一個WebBrowser控件

設置WebBrowser的URL為谷歌翻譯網站,刪除不需要的html元素

全部代碼:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Shown += Form1_Shown;
        }
        const string url = "http://translate.google.cn/?hl=zh-cn#zh-CN/en/%E6%9D%A5%E8%87%AA%0Ahttp%3A%2F%2Ftranslate.google.cn%2F";
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.IsWebBrowserContextMenuEnabled = false;
            webBrowser1.ScriptErrorsSuppressed = true;
            webBrowser1.Url = new Uri(url);
        }
        void Form1_Shown(object sender, EventArgs e)
        {
            while (webBrowser1.Document == null)
                Application.DoEvents();
            HtmlElement element;
            deleteAllElement(webBrowser1.Document.Body, "DIV", "gt-c", out element);
            deleteAllElement(element, "DIV", "gt-form-c", out element);
            deleteAllElement(element, "FORM", "gt-form", out element);
            deleteAllElement(element, "DIV", "gt-text-all", out element);
            deleteAllElement(element, "DIV", "gt-main", out element);
            deleteAllElement(element, "DIV", "gt-text-c", out element);
            deleteElementByID(element, "gt-ft");

            //獲得gc-text-top元素
            foreach (HtmlElement ele in element.Children)
            {
                if (ele.Id == "gt-text-top")
                {
                    element = ele;
                    break;
                }
            }

            #region 去掉 上傳,幫助
            HtmlElement srcElement = null;
            foreach (HtmlElement ele in element.Children)
            {
                if (ele.Id == "gt-src-c")
                {
                    srcElement = ele;
                    break;
                }
            }
            deleteAllElement(srcElement, "", "gt-src-p", out srcElement);
            deleteAllElement(srcElement, "DIV", "gt-src-wrap", out srcElement);

            #endregion
            //去掉有錯誤
            #region 去掉 上傳,幫助
            HtmlElement resElement = null;
            foreach (HtmlElement ele in element.Children)
            {
                if (ele.Id == "gt-res-c")
                {
                    resElement = ele;
                    break;
                }
            }
            deleteAllElement(resElement, "", "gt-res-p", out resElement);
            deleteAllElement(resElement, "", "gt-res-data", out resElement);
            deleteAllElement(resElement, "DIV", "gt-res-wrap", out resElement);
            deleteElementByID(resElement, "gt-res-tools");
            #endregion
        }


        void deleteAllElement(HtmlElement HtmlEle, string TagName, string IgroneID, out HtmlElement element)
        {
            element = null;
            if (HtmlEle == null) return;
            List<HtmlElement> lst = new List<HtmlElement>();

            foreach(HtmlElement div in HtmlEle.Children)
            {

                if (!String.IsNullOrEmpty(TagName) && div.TagName != TagName) continue;
                if (div.Id != IgroneID)
                {
                    lst.Add(div);
                    
                }
                else
                    element = div;
            }
            foreach (HtmlElement ele in lst)
            {
                IHTMLDOMNode node = ele.DomElement as IHTMLDOMNode;//this.webBrowser1.DomElement as mshtml.IHTMLDOMNode;
                if (node != null)
                {
                    node.parentNode.removeChild(node);
                }
            }
        }
        void deleteElementByID(HtmlElement HtmlEle, string DeleteID)
        {
            
            
            foreach (HtmlElement div in HtmlEle.Children)
            {

                if (div.Id == DeleteID)
                {
                    IHTMLDOMNode node = div.DomElement as IHTMLDOMNode;//this.webBrowser1.DomElement as mshtml.IHTMLDOMNode;
                    if (node != null)
                    {
                        node.parentNode.removeChild(node);
                    }
                    return;

                }
            }

        }
    }

下載地址:CSDN下載

下一節:

C#借助谷歌翻譯實現翻譯小工具(二)添加托盤圖標

慎于行,敏于思!GGGGGG

總結

以上是生活随笔為你收集整理的C#借助谷歌翻译实现翻译小工具(一)基本功能实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。