• google翻译


    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Text;
    using System.Net;
    using System.Text.RegularExpressions;
    
    namespace Web
    {
        public class GoogleTranslate
        {
            private string UrlTemplate = "http://translate.google.com.hk/";                            //google翻译URL模板:POST方式请求
            private string[] Languages = { "en", "zh-CN", "fr", "ja", "ko" ,"ru"};
            #region 常用语言编码
            private string AutoDetectLanguage = "auto"; //google自动判断来源语系
            #endregion
            private static GoogleTranslate translate;
            private GoogleTranslate()
            { }
    
            public GoogleTranslate Instance()
            {
                if (translate == null)
                    translate = new GoogleTranslate();
                return translate;
            }
    
            /// <summary>
            /// 翻译文本[自动检测源语言类型]
            /// </summary>
            /// <param name="sourceText">源文本</param>
            /// <param name="targetLanguageCode">目标语言类型代码,0英语1汉语2法语3日语4韩语5俄语</param>
            /// <returns>翻译结果</returns>
            public string Translate(string sourceText, int targetLanguageCode)
            {
                return Translate(sourceText, AutoDetectLanguage, Languages[targetLanguageCode]);
            }
    
            /// <summary>
            /// 翻译文本
            /// </summary>
            /// <param name="sourceText">源文本</param>
            /// <param name="sourceLanguageCode">源语言类型代码,如:en、zh-CN、zh-TW、ru等</param>
            /// <param name="targetLanguageCode">目标语言类型代码,如:en、zh-CN、zh-TW、ru等</param>
            /// <returns>翻译结果</returns>
            private string Translate(string sourceText, string sourceLanguageCode, string targetLanguageCode)
            {
                if (string.IsNullOrEmpty(sourceText) || Regex.IsMatch(sourceText, @"^s*$"))
                {
                    return sourceText;
                }
    
                string strReturn = string.Empty;
    
                #region POST方式实现,无长度限制
                string url = UrlTemplate;
    
                //组织请求的数据
                string postData = string.Format("langpair={0}&text={1}", HttpUtility.UrlEncode(sourceLanguageCode + "|" + targetLanguageCode), HttpUtility.UrlEncode(sourceText));
                byte[] bytes = Encoding.UTF8.GetBytes(postData);
    
                WebClient client = new WebClient();
                client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
                client.Headers.Add("ContentLength", postData.Length.ToString());
                byte[] responseData = client.UploadData(url, "POST", bytes);
                string strResult = Encoding.UTF8.GetString(responseData);    //响应结果 
                #endregion
                #region 获取result_box中的结果
                int index = strResult.IndexOf("result_box");
                if (index > 0)
                {
                    strResult = strResult.Substring(index);
                    index = strResult.IndexOf("<span");
                    strResult = strResult.Substring(index);
                    index = strResult.IndexOf(">");
                    strResult = strResult.Substring(index);
                    index = strResult.IndexOf("</span>");
                    strResult = strResult.Substring(1, index - 1);
                }
                #endregion
                else strResult = "";
                return strResult;
            }
        }
    }
  • 相关阅读:
    CF1438D Powerful Ksenia(构造题)
    AT5759 ThREE(构造)
    浏览器中上面三个字,下面两个字 两端对齐(转)
    luoguP3372 【模板】线段树 1
    大数据-linux实操篇-组管理和权限管理
    大数据-linux实操篇-解压和压缩类指令
    大数据-linux实操篇-搜索查找类指令
    大数据-linux实操篇-文件目录类指令
    大数据-linux实操篇-帮助指令
    大数据-linux实操篇-实用指令(七个级别、忘记root密码)
  • 原文地址:https://www.cnblogs.com/mengxingxinqing/p/3284118.html
Copyright © 2020-2023  润新知