Cấp bậc tác giả:

DOTNET

Xây dựng ứng dụng dịch văn bản với asp.net

Được viết bởi QuangIT ngày 13/08/2012 lúc 07:05 PM
Nếu bạn đã từng sử dụng chức năng dịch văn bản của google - Bạn cũng có thể xây dựng nó. Trong bài viết này tôi minh họa cho bạn cách xây dựng chức năng dịch văn bản tương tự như chức năng dịch văn bản mà google cung cấp.
  • 0
  • 1179

Xây dựng ứng dụng dịch văn bản với asp.net


Nếu bạn đã từng sử dụng chức năng dịch văn bản của google - Bạn cũng có thể xây dựng nó. Trong bài viết này tôi minh họa cho bạn cách xây dựng chức năng dịch văn bản tương tự như chức năng dịch văn bản mà google cung cấp.

Chúng ta sẽ sử dụng webservice được cung cấp bởi msdn.microsoft.com. Bạn thực hiện các bước dưới đây:

Bước 1: Đăng ký AppID.

Để sử dụng webservice bạn cần có tài khoản Hotmail để đăng nhập. Sau khi đăng nhập bạn tạo AppID theo liên kết http://msdn.microsoft.com/en-us/library/ff512386.aspx . Nếu bạn ngại đăng ky Bạn có thể sử dụng sẵn AppID mà tôi đã đăng ký là: A2F3AF24FCD06A0F40A8BE754302CF4731E5B924. Thực tế khi bạn đã có AppID rồi bạn có thể dùng liên kết sau để dịch dữ liệu bạn cần

http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=" + appId + "&text=" + textvalue + "&from=" + from + "&to=" + to; trong đó appID là mã bạn đã đăng ký, textvalue là đoạn văn vản bạn cần dịch, from là mã ngôn ngữ cần dịch, to là mã ngôn ngữ mà bạn muốn dịch. Vậy ta sẽ dựng một Form để chuyển hóa link đó bằng sự kiện trên Form.

Bước 2: Xây dựng Form

Code giao diện như sau:
<table style="width: 600px;">
<tr>
<td>
Từ: <asp:DropDownList ID="ddlFrom" runat="server">
<asp:ListItem Text="VietNam" Value="vi" Selected="True" />
<asp:ListItem Text="English" Value="en" />
<asp:ListItem Text="Polish" Value="pl" />
<asp:ListItem Text="German" Value="de" />
<asp:ListItem Text="French" Value="fr" />
<asp:ListItem Text="Swedish" Value="sv" />
<asp:ListItem Text="Chinese Simplified" Value="zh-cn" />
</asp:DropDownList>
Sang: <asp:DropDownList ID="ddlTo" runat="server">
<asp:ListItem Text="VietNam" Value="vi" />
<asp:ListItem Text="English" Value="en" Selected="True" />
<asp:ListItem Text="Polish" Value="pl" />
<asp:ListItem Text="German" Value="de" />
<asp:ListItem Text="French" Value="fr" />
<asp:ListItem Text="Swedish" Value="sv" />
<asp:ListItem Text="Chinese Simplified" Value="zh-cn" />
</asp:DropDownList> 
<asp:Button ID="btnTranslate" runat="server" onclick="btnTranslate_Click" Width="80px" Text="Dịch" />
</td>
</tr>
<tr>
<td >
<asp:TextBox ID="txtValue" runat="server" Height="80px" TextMode="MultiLine" 
Width="600px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Literal ID="ltTranslatetxt" runat="server"></asp:Literal>
</td>
</tr>
</table>

Bước 3: 
Viết code: bạn viết hàm Translate và sử dụng nó trong sự kiện click của button như sau
public void Translate(string textvalue, string from, string to)
{
string appId = "3CDF850957DBFFCCE5E0E313B63F38332A01F755";
string uri = "http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=" + appId + "&text=" + textvalue + "&from=" + from + "&to=" + to;
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);

WebResponse response = null;
try
{
response = httpWebRequest.GetResponse();
using (Stream stream = response.GetResponseStream())
{
System.Runtime.Serialization.DataContractSerialize r dcs = new System.Runtime.Serialization.DataContractSerialize r(Type.GetType("System.String"));
string translation = (string)dcs.ReadObject(stream);

ltTranslatetxt.Text = "<b>Bản dịch: </b><br>" + translation + "";
}
}
catch (WebException e)
{
txtValue.Text = "Failed to translate";
}
finally
{
if (response != null)
{
response.Close();
response = null;
}
}
}
protected void btnTranslate_Click(object sender, EventArgs e)
{
Translate(txtValue.Text, ddlFrom.SelectedItem.Value.ToString(), ddlTo.SelectedItem.Value.ToString());
}

Bạn chú ý khai báo các thư viện:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;
Trong code trên tôi chỉ minh họa mã ngỗn ngữ của mấy nước, nếu bạn cần bạn có thể lấy mã ngôn ngữ của các quốc gia khác trong danh sách sau đây:
'ALBANIAN' : 'sq',
'ARMENIAN' : 'hy',
'BASQUE' : 'eu',
'BURMESE' : 'my',
'CATALAN' : 'ca',
'CHEROKEE' : 'chr',
'CHINESE' : 'zh',
'CHINESE_SIMPLIFIED' : 'zh-CN',
'CHINESE_TRADITIONAL' : 'zh-TW',
'CORSICAN' : 'co',
'CROATIAN' : 'hr',
'CZECH' : 'cs',
'DANISH' : 'da',
'DHIVEHI' : 'dv',
'DUTCH': 'nl', 
'ENGLISH' : 'en',
'ESPERANTO' : 'eo',
'ESTONIAN' : 'et',
'FAROESE' : 'fo',
'FILIPINO' : 'tl',
'FINNISH' : 'fi',
'FRENCH' : 'fr',
'FRISIAN' : 'fy',
'GALICIAN' : 'gl',
'GEORGIAN' : 'ka',
'GERMAN' : 'de',
'GREEK' : 'el',
'GUJARATI' : 'gu',
'HAITIAN_CREOLE' : 'ht',
'HEBREW' : 'iw',
'HINDI' : 'hi',
'HUNGARIAN' : 'hu',
'ICELANDIC' : 'is',
'INDONESIAN' : 'id',
'INUKTITUT' : 'iu',
'IRISH' : 'ga',
'ITALIAN' : 'it',
'JAPANESE' : 'ja',
'JAVANESE' : 'jw',
'KANNADA' : 'kn',
'KAZAKH' : 'kk',
'KHMER' : 'km',
'KOREAN' : 'ko',
'KURDISH': 'ku',
'KYRGYZ': 'ky',
'LAO' : 'lo',
'LATIN' : 'la',
'LATVIAN' : 'lv',
'LITHUANIAN' : 'lt',
'LUXEMBOURGISH' : 'lb',
'MACEDONIAN' : 'mk',
'MALAY' : 'ms',
'MALAYALAM' : 'ml',
'MALTESE' : 'mt',
'MAORI' : 'mi',
'MARATHI' : 'mr',
'MONGOLIAN' : 'mn',
'NEPALI' : 'ne',
'NORWEGIAN' : 'no',
'OCCITAN' : 'oc',
'ORIYA' : 'or',
'PASHTO' : 'ps',
'PERSIAN' : 'fa',
'POLISH' : 'pl',
'PORTUGUESE' : 'pt',
'PORTUGUESE_PORTUGAL' : 'pt-PT',
'PUNJABI' : 'pa',
'QUECHUA' : 'qu',
'ROMANIAN' : 'ro',
'RUSSIAN' : 'ru',
'SANSKRIT' : 'sa',
'SCOTS_GAELIC' : 'gd',
'SERBIAN' : 'sr',
'SINDHI' : 'sd',
'SINHALESE' : 'si',
'SLOVAK' : 'sk',
'SLOVENIAN' : 'sl',
'SPANISH' : 'es',
'SUNDANESE' : 'su',
'SWAHILI' : 'sw',
'SWEDISH' : 'sv',
'SYRIAC' : 'syr',
'TAJIK' : 'tg',
'TAMIL' : 'ta',
'TATAR' : 'tt',
'TELUGU' : 'te',
'THAI' : 'th',
'TIBETAN' : 'bo',
'TONGA' : 'to',
'TURKISH' : 'tr',
'UKRAINIAN' : 'uk',
'URDU' : 'ur',
'UZBEK' : 'uz',
'UIGHUR' : 'ug',
'VIETNAMESE' : 'vi',
'WELSH' : 'cy',
'YIDDISH' : 'yi',
'YORUBA' : 'yo',
'UNKNOWN' : ''

Nguồn bài viết: Dngaz.com

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML