我正在尝试将输入文本从英语翻译成泰米尔语。为此,我使用了以下代码段。
<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>
背后的代码是
[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);
}
当我输入SARA时,结果返回சாரா
。
当它粘贴在谷歌时它显示翻译的文本。但在应用程序中它没有被转换。
请提供您有价值的想法,以便理清这一点。
答案 0 :(得分: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;
}