Sample-Code:Translator

本文介绍了一款使用ASP.NET构建的在线翻译工具,能够将输入的英文文本翻译成西班牙文。通过调用Microsoft Translator API,实现了自动化翻译功能。包括API请求流程、关键代码段解析及翻译结果展示。
  <h2>My Spanish Translator</h2>
       <p>
            Enter your text in English:&nbsp; </p>
       <p>
           <asp:TextBox ID="TextBox1" runat="server"  
             Width="198px"></asp:TextBox>
       </p>
     <p>
           <asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
                Text="Translate" />
       </p>
       <p>
            Here is your translation:</p>
      <p>
           <asp:Literal ID="lbl1" runat="server"></asp:Literal>
      </p>

button code:

 string clientID = "<Your ClientID>";
            string clientSecret = "<Your Client Secret>";

            String strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
            String strRequestDetails = string.Format("grant_type=client_credentials&client_id={0}&client_secret={1}&scope=http://api.microsofttranslator.com", HttpUtility.UrlEncode(clientID), HttpUtility.UrlEncode(clientSecret));

            System.Net.WebRequest webRequest = System.Net.WebRequest.Create(strTranslatorAccessURI);
            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.Method = "POST";

            byte[] bytes = System.Text.Encoding.ASCII.GetBytes(strRequestDetails);
            webRequest.ContentLength = bytes.Length;
            using (System.IO.Stream outputStream = webRequest.GetRequestStream())
            {
                outputStream.Write(bytes, 0, bytes.Length);
            }
            System.Net.WebResponse webResponse = webRequest.GetResponse();

            System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(AdmAccessToken));
            //Get deserialized object from JSON stream 
            AdmAccessToken token = (AdmAccessToken)serializer.ReadObject(webResponse.GetResponseStream());

            string headerValue = "Bearer " + token.access_token;

            string txtToTranslate = TextBox1.Text;
            string uri = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text=" + System.Web.HttpUtility.UrlEncode(txtToTranslate) + "&from=en&to=es";
            System.Net.WebRequest translationWebRequest = System.Net.WebRequest.Create(uri);
            translationWebRequest.Headers.Add("Authorization", headerValue);
            System.Net.WebResponse response = null;
            response = translationWebRequest.GetResponse();
            System.IO.Stream stream = response.GetResponseStream();
            System.Text.Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            System.IO.StreamReader translatedStream = new System.IO.StreamReader(stream, encode);
            System.Xml.XmlDocument xTranslation = new System.Xml.XmlDocument();
            xTranslation.LoadXml(translatedStream.ReadToEnd());
            lbl1.Text = "Your Translation is: " + xTranslation.InnerText;

AdmAccessToken Class:

  public class AdmAccessToken
       {
    
           public string access_token { get; set; }
 
          public string token_type { get; set; }
    
           public string expires_in { get; set; }
     
            public string scope { get; set; }
      }

 

Resource from: http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx

转载于:https://www.cnblogs.com/akingyao/p/3835608.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值