有个网站有N种语言。比如有默认英文,要有法语,意大利,日语,客户想通过google翻译来实现。不是逐字的翻译。而是整个网页的翻译。比如 http://www.xxx.com/a.aspx?id=1 上面有许多语言翻译。点击某种语言这个页面就调用GOOGLE翻译API翻译。有没有谁做过的。给个例子。谢了!

解决方案 »

  1.   

    1. 翻译类using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Net;
    using System.IO;//using 
    /// <summary>
    /// Summary description for translate
    /// </summary>
    public class translate2
    {
    public translate2()
    {
    //
    // TODO: Add constructor logic here
    //
    }    /// <summary> 
        /// 使用WebRequest获取Google翻译后的内容 
        /// </summary> 
        /// <param name="strTranslateString">需要翻译的内容</param> 
        /// <param name="strRequestLanguage">原文语种</param> 
        /// <param name="strResultLanguage">译文语种</param> 
        /// <returns></returns> 
        private string GetGoogleTranslateJSONString(string strTranslateString,
        string strRequestLanguage, string strResultLanguage)
        {
            WebRequest request = HttpWebRequest.Create("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + strTranslateString + "&langpair=" + strRequestLanguage + "%7C" + strResultLanguage);
            request.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse response =
                (HttpWebResponse)request.GetResponse();
            Stream dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            reader.Close();
            dataStream.Close();
            response.Close();
            return responseFromServer;
        }    /// <summary> 
        /// 译文的反系列化类 
        /// </summary> 
        public class TranslateString
        {
            private TranslatedText responsedata;
            public TranslatedText responseData
            {
                get { return responsedata; }
                set { responsedata = value; }
            }
            private string responsedetails;
            public string responseDetails
            {
                get { return responsedetails; }
                set { responsedetails = value; }
            }
            private int responsestatus;
            public int responseStatus
            {
                get { return responsestatus; }
                set { responsestatus = value; }
            }        /**/
            /**/
            /**/
            /// <summary> 
            /// 译文内容 
            /// </summary> 
            public class TranslatedText
            {
                private string translatedtext;
                public string translatedText
                {
                    get { return translatedtext; }
                    set { translatedtext = value; }
                }
            }
        }
        public string MultiLanguageTranslate(string strTranslateString, string
        strRequestLanguage, string strResultLanguage)
        {
            try
            {
                if (!string.IsNullOrEmpty(strTranslateString))
                {
                    TranslateString transtring =
        (TranslateString)
        //Newtonsoft.Json.JavaScriptConvert.DeserializeObject(
        Newtonsoft.Json.JsonConvert.DeserializeObject(
        GetGoogleTranslateJSONString(strTranslateString,
            strRequestLanguage, strResultLanguage),
                           typeof(TranslateString));
                    if (transtring.responseStatus == 200)
                        return transtring.responseData.translatedText;
                    else
                        return "There was an error.";
                }
                else
                {
                    return strTranslateString;
                }
            }
            catch (Exception e)
            {
                return e.Message;
            }
        }
        /// <summary>
        /// 翻译
        /// 默认地将英文翻译成简体中文
        /// </summary>
        /// <param name="TranslateString">需要翻译的内容</param>
        /// <returns></returns>
        public string TranslateEnglishToChinese(string strTranslateString)
        {
            return MultiLanguageTranslate(strTranslateString, "en", "zh-CN");
        }    /**/
        /// <summary>
        /// 翻译
        /// 默认地将简体中文翻译成英文
        /// </summary>
        /// <param name="TranslateString">需要翻译的内容</param>
        /// <returns></returns>
        public  string TranslateChineseToEnglish(string strTranslateString)
        {
            return MultiLanguageTranslate(strTranslateString, "zh-CN", "en");
        }}
    2.调用 translate2 Translate2 = new translate2();
     result = Translate2.TranslateEnglishToChinese(content);
      

  2.   

    <div id="google_translate_element"></div><script>
    function googleTranslateElementInit() {
      new google.translate.TranslateElement({
        pageLanguage: 'zh-CN'
      }, 'google_translate_element');
    }
    </script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>http://translate.google.com/translate_tools
      

  3.   

    非常感谢。我也找到了http://translate.google.com/translate_tools
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="en" dir="ltr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
    </head>
    <body style="font-family: arial; font-size: 10pt">
        <h1 style="border-bottom: 1px solid #68C; padding-bottom: 5px; vertical-align: middle;
            overflow: hidden; *zoom: 1">
            <div style="float: right; font-weight: normal">
                <div id="google_translate_element">
                </div>            <script>
    function googleTranslateElementInit() {
      new google.translate.TranslateElement({
        pageLanguage: 'zh-CN'
      }, 'google_translate_element');
    }
                </script>            <script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>        </div>
            您的个性网站</h1>
        <table width="100%">
            <tr>
                <td style="width: 120px; padding-right: 10px; padding-left: 10px; text-align: right">
                    <div style="margin-bottom: 4px">
                        <b style="color: #333">简介</b></div>
                    <div style="margin-bottom: 4px">
                        <b style="color: #888">相册</b></div>
                    <div style="margin-bottom: 15px">
                        <b style="color: #888">博客</b></div>
                </td>
                <td style="border-right: 1px dashed #ABF; width: 1px">
                </td>
                <td style="padding-left: 10px; padding-right: 10px;">
                    <h3 style="margin-top: 0">
                        简介</h3>
                    <p>
                        这是示例网页。您可以在此处预览和试用网站翻译器。尝试更改上述设置,然后点击“预览和试用!”按钮查看效果。例如,如果您选择了某种翻译语言,则下拉菜单中的各语言会相应地更改。祝您体验愉快!</p>
                </td>
            </tr>
        </table>
    </body>
    </html>