閱讀855 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Google翻譯API(B/S調用和C/S調用)

瀏覽器調用:

<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
    <!--
    google.load("language", "1");

    function initialize() {
      var text = document.getElementById("text").innerHTML;
      google.language.detect(text, function(result) {
        if (!result.error && result.language) {
          google.language.translate(text, result.language, "en",
                                    function(result) {
            var translated = document.getElementById("translation");
            if (result.translation) {
              translated.innerHTML = result.translation;
            }
          });
        }
      });
    }
    google.setOnLoadCallback(initialize);
    //-->
    </script>
  </head>
  <body>
    <div >你好,很高興見到你。</div>
    <div ></div>
  </body>
</html>

客戶端 調用:

將 Google翻譯API封裝成一個類:GoogleTranslateLib.cs

namespace GoogleTranslateLib
{
    using System;
    using System.IO;
    using System.Net;
    using System.Runtime.Serialization;
    using System.Text;
    using System.Web;
	
	[DataContract(Namespace = "https://ajax.googleapis.com/ajax/services/language/translate")]
	class Config
	{
		[DataMember(Order = 0)]
		public ResponseData responseData { get; set; }
		[DataMember(Order = 1)]
		public string responseDetails { get; set; }
		[DataMember(Order = 2)]
		public string responseStatus { get; set; }
	}
	[DataContract(Namespace = "https://ajax.googleapis.com/ajax/services/language/translate")]
	class ResponseData
	{
		[DataMember(Order = 0)]
		public string translatedText { get; set; }
	}
	class Translate
	{
		public static string translatezh2en(string sourceText, string langPair)
		{
			string result;
			string url = "https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=";
			url +=  HttpUtility.UrlEncode(langPair) + "&q=" +  HttpUtility.UrlEncode(sourceText);
			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
			request.Method = "GET";
			request.Referer = "https://www.my-ajax-site.com";
			try
			{
				HttpWebResponse response = (HttpWebResponse)request.GetResponse();
				Stream responseStream = response.GetResponseStream();
				StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("UTF-8"));
				result = reader.ReadToEnd();
			}
			catch (Exception)
			{
				return "";
			}
			return result;
		}
	}
}
 
調用方法:

using System;
using System.IO;
using System.Text;
using System.Runtime.Serialization.Json;

namespace GoogleTranslateDemo
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("請輸入您想翻譯的字詞:");
            string inputStr = Console.ReadLine();
            Console.WriteLine("翻譯中,請稍後...");
            string result = GoogleTranslateLib.Translate.translatezh2en(inputStr, "zh|en");
            if (!string.IsNullOrEmpty(result))
            {
                var serializer = new DataContractJsonSerializer(typeof(GoogleTranslateLib.Config));
                var mStream = new MemoryStream(Encoding.UTF8.GetBytes(result));
                GoogleTranslateLib.Config readConfig = (GoogleTranslateLib.Config)serializer.ReadObject(mStream);
                if (readConfig.responseStatus == "200")
                {
                    string message = "原始內容:" + inputStr + Environment.NewLine + "翻譯內容:" + readConfig.responseData.translatedText;
                    Console.WriteLine(message);
                }
            }
            Console.ReadKey(true);
        }
    }
}
效果圖:






最後更新:2017-04-02 06:51:48

  上一篇:go [usaco]羅馬數字
  下一篇:go mysql學習筆記之mysql常用的命令