2017-03-01 4 views
0

入力テキストを英語からタミール語に翻訳しようとしています。そのために私は以下のスニペットを使用しました。Translate google translate戻り値はパーセント記号です

<form id="Master_form" class="form-horizontal"> 
    <div class="panel panel-default"> 
     <div class="panel-body" style="padding-top:6px;padding-bottom:2px"> 
      <div class="row" style="padding-bottom:15px"> 

       <div class="col-sm-4"> 
        <div class="form-group"> 
         <input id="enText" type="text" value=""> 
        </div> 
       </div> 
       <div class="col-sm-4"> 
        <div class="form-group"> 
         <input id="tnText" type="text" value=""> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</form> 
<script> 
    $("#enText").keyup(function() { 
     var id = $('#enText').val(); 
     $.ajax({ 
      url: '@Url.Action("Foo", "Translate")', 
      type: 'GET', 
      dataType: 'json', 
      cache: false, 
      data: { 'id': id }, 
      success: function (result) { 
       //var res =unescapeUTF8EscapeSeq(result); 
       $('#tnText').val(res); 
      }, 
      error: function() { 
       alert('Error occured'); 
      } 
     }); 
    }); 

</script> 

と私はそれが&#2970;&#3006;&#2992;&#3006;として結果を返されたSARAを入力すると、コードは背後

[HttpGet] 
     public JsonResult Foo(string id) 
     { 
      Translate trans = new Translate(); 
      trans.engText = ""; 
      trans.tmText = ""; 
      var langpair = "en%7Cta#en/ta/" + id; 
      string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", id, langpair); 
      WebClient webClient = new WebClient(); 
      webClient.Encoding = System.Text.Encoding.UTF8; 
      string result = webClient.DownloadString(url); 
      result = result.Substring(result.IndexOf("<span title=\"") + "<span title=\"".Length); 
      result = result.Substring(result.IndexOf(">") + 1); 
      result = result.Substring(0, result.IndexOf("</span>")); 
      //result = UnescapeHex(result); 
      return Json(result.Trim(), JsonRequestBehavior.AllowGet); 
     } 

です。 Googleに貼り付けると、翻訳されたテキストが表示されました。しかし、アプリケーションでは変換されません。

これを整理するために貴重なアイデアを提供してください。

答えて

0

私はtextareaの値をバインドすることでこれを解決し、デコードされたテキストを表示します。

$("#" + src).keyup(function() { 
     //$("#" + src).change(function() { 
      var id = $('#' + src).val(); 
      $.ajax({ 
       url: '@Url.Action("Foo", "Translate")', 
       type: 'GET', 
       dataType: 'json', 
       cache: false, 
       data: { 'id': id }, 
       success: function (result) { 
        //var res =unescapeUTF8EscapeSeq(result); 
        //$('#tnText').val(res); 
        //$('#tnText').val(result); 
        $('#' + dest).val(decodeEntities(result)); 
       }, 
       error: function() { 
        alert('Error occured'); 
       } 
      }); 
     }) 


function decodeEntities(input) { 
    var y = document.createElement('textarea'); 
    y.innerHTML = input; 
    return y.value; 
}