Tạo một ứng dụng web với dịch được cung cấp bởi Microsoft Translator.
Tạo một ứng dụng web với dịch được cung cấp bởi Microsoft Translator.
Trong Walkthrough này, bạn sẽ tìm hiểu làm thế nào để tạo ra một ứng dụng web sử dụng Microsoft Translator API để dịch văn bản đã được nhập vào bởi người sử dụng. Bạn sẽ xây dựng trang sử dụng ASP.NET và Visual Studio Express miễn phí 2012 cho web. Nếu bạn đã cài đặt Visual Studio, bạn sẽ vẫn có thể thực hiện theo hướng dẫn, chỉ cần bỏ qua bước 1.
Trước khi bắt đầu, bạn sẽ cần phải đăng ký Microsoft Translator API trong Azure. Có một số dịch vụ khác nhau, bao gồm một phần miễn phí, và bạn có thể thấy làm thế nào để đăng ký miễn phí, đăng ký ứng dụng của bạn và nhận được thông tin của bạn ở đây:
http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx
ID khách hàng và bí mật của khách hàng mà bạn tạo ở đây sẽ được sử dụng trong bước 4, vì vậy hãy lưu ý chúng.
Bước 1. Bắt Visual Studio Express 2012 cho web.
Cách tốt nhất để bắt đầu là ghé thăm http://www.asp.net/downloads và chọn nút ' cài đặt ngay bây giờ ' trong phần ' nhận mọi thứ với một cài đặt đơn giản '.
Điều này sẽ khởi động trình cài đặt nền tảng web sẽ cài đặt Visual Studio, ASP.NET, MVC và một máy chủ lưu trữ toàn bộ các goodies khác mà bạn có thể sử dụng để xây dựng trang web.
Bước 2. Tạo ứng dụng web
Chạy Visual Studio và menu Tệp, chọn ' dự án mới '. Bạn sẽ thấy một hộp thoại chứa danh sách các dự án khác nhau có sẵn để bạn xây dựng các trang web có. Chọn ' Visual C# ' ở bên trái, và sau đó chọn ' ASP.NET Web Forms ứng dụng ' từ danh sách.
Cung cấp tên cho ứng dụng web của bạn, chẳng hạn như ' Translator ', và nhấn ' OK '. Visual Studio bây giờ sẽ tạo tất cả mọi thứ bạn cần để xây dựng và chạy ứng dụng web. Nhấn F5 để xây dựng và chạy các ứng dụng và bạn sẽ thấy một cái gì đó như thế này:
Bước 3. Tạo giao diện người dùng cho văn bản dịch
Trong phần này, bạn sẽ thêm các điều khiển vào trang web cho phép người dùng cuối gõ vào một số văn bản, nhấn nút dịch và sau đó xem bản dịch của nội dung mà họ đã nhập. Loại chức năng này rất hữu ích để tương tác với khách hàng của bạn khi bạn nói ngôn ngữ khác nhau, ví dụ.
Từ trình thám hiểm giải pháp, tìm trang ' about. aspx '. Mở nó trong nhà thiết kế, và bạn sẽ thấy một cái gì đó như thế này:
Delete the 3 <p> tags that say ‘Use this area to provide additional information’, and replace with some controls to provide a basic translation UI, like this:
Để thuận tiện cho bạn, đây là nguồn cho Trang này:
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %> <ASP: nội dung runat= "máy chủ" ID= "BodyContent" ContentPlaceHolderID= "MainContent"> <hnhóm Lớp= "tiêu đề"> <h1><%: Tiêu đề %>.</h1> <h2>Trang mô tả ứng dụng của bạn.</h2> </hnhóm> <Bài viết> Nhập văn bản bạn muốn dịch:<Br /> <ASP: hộp văn bản ID= "TextBox1" runat= "máy chủ" Chiều cao= "25px" Chiều rộng= "342px"></ASP: hộp văn bản> <ASP: nút ID= "Button1" runat= "máy chủ" Chiều cao= "37px" Onclick= "Button1_Click" Văn bản= "Dịch" /> <Br /> Văn bản dịch của bạn là:<Br /> <ASP: chữ ID= "Literal1" runat= "máy chủ"></ASP: chữ> </Bài viết> <Dành> <h3>Ngoài tiêu đề</h3> <P> Sử dụng khu vực này để cung cấp thêm thông tin. </P> <Ul> <Li><A runat= "máy chủ" Href="~/">Nhà</A></Li> <Li><A runat= "máy chủ" Href= "~/About.aspx">Về</A></Li> <Li><A runat= "máy chủ" Href= "~/Contact.aspx">Liên hệ</A></Li> </Ul> </Dành> </ASP: nội dung>
Lưu ý rằng trong các nhà thiết kế, bạn nên nhấp đúp chuột vào nút để tạo ra mã "Button1_Click". Bạn sẽ viết mã này trong bước tiếp theo.
Bước 4. Viết mã để dịch văn bản người dùng
Trong phần trước, bạn đã tạo một giao diện người dùng cơ bản cho dịch văn bản. Nó cho phép người dùng viết một số văn bản, và nhấn một nút. Trong phần này, bạn sẽ viết mã đằng sau nút đó sẽ dịch văn bản mong muốn của người dùng vào tiếng Tây Ban Nha, và hiển thị nó trên trang.
Trước tiên, bạn sẽ cần phải thêm một lớp mới vào giải pháp của bạn. Gọi nó AdmAccessToken và cung cấp cho nó mã sau đây:
Sử dụng Hệ thống Sử dụng System. Collections. generic; Sử dụng System. Linq; Sử dụng System. web; Tên thông dịch viên { Công cộng Lớp AdmAccessToken { Công cộng Chuỗi access_token { get; set; } Công cộng Chuỗi token_type { get; set; } Công cộng Chuỗi expires_in { get; set; } Công cộng Chuỗi scope { get; set; } } }
Lưu ý rằng tên của 4 chuỗi phải khớp với những gì ở đây chính xác, hoặc bạn sẽ nhận được lỗi trong Code của bạn sau này.
Tiếp theo, trong Visual Studio, trong giải pháp Explorer, nhấp chuột phải vào thư mục ' tham khảo ' và chọn ' thêm tham khảo '. Sử dụng hộp thoại này sau để thêm tham chiếu đến
– System. Runtime. serialization
– System. XML. Linq
– System. ServiceModel. web
Ở đầu mã của bạn cho About.aspx.cs, bạn sẽ thấy một số báo cáo ' bằng cách sử dụng '. Thêm bằng cách sử dụng System. xml. Linq để các, để nó trông như thế này:
Sử dụng Hệ thống Sử dụng System. Collections. generic; Sử dụng System. Linq; Sử dụng System. web; Sử dụng System. web. UI; Sử dụng System. web. UI. WebControls; Sử dụng System. xml. Linq; Tên thông dịch viên { Công cộng Phần Lớp About : Page { Bảo vệ Void Page_Load (Đối tượng người gửi, EventArgs e) { } Bảo vệ Void Button1_Click (Đối tượng người gửi, EventArgs e) { } } }
Bạn sẽ thấy mã Button1_Click trống. Thêm mã sau vào nó. Code này sẽ nhận được mã thông báo truy cập của bạn cho dịch vụ phiên dịch, sử dụng client ID và client Secret mà bạn đã tạo trước đó.
Chuỗi clientID = "<Your ClientID>"; Chuỗi clientSecret = "<Your Client Secret>"; String strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13"; String strRequestDetails = Chuỗi. Định dạng"grant_type=client_credentials&client_id={0}&client_secret={1} &scope=http://api.microsofttranslator.com", HttpUtility. UrlEncode (clientID), HttpUtility. UrlEncode (clientSecret)); Hệ thống .net. WebRequest webRequest = System .net. WebRequest. Create (strTranslatorAccessURI); webRequest. ContentType = "Application/x-www-mẫu-urlencoded"; webRequest. method = BÀI; byte[] Bytes = System. Text. Encoding. ASCII. GetBytes (strRequestDetails); webRequest. ContentLength = byte. Chiều dài Sử dụng (System.IO.Stream outputStream = webRequest.GetRequestStream()) { outputStream.Write(bytes, 0, bytes.Length); } System.Net.WebResponse webResponse = webRequest.GetResponse(); System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = Mới System. Runtime. serialization. JSON. DataContractJsonSerializer (typeof(AdmAccessToken)); AdmAccessToken token = (AdmAccessToken) serializer. ReadObject (webResponse. GetResponseStream ()); Chuỗi headerValue = Bearer + Token. access_token;
Mã này tạo thành một bài đăng cho dịch vụ thị trường dữ liệu, chuyển ID và bí mật của bạn và nhận được một đối tượng JSON trở lại. Sau đó bạn deserialize đối tượng đó vào một AdmAccessToken. Sau đó bạn có thể lấy được access_token từ này.
Mã thông báo này sau đó được thêm vào một chuỗi, tiền tố "ghi" (Đừng quên không gian) để tạo ra một giá trị tiêu đề sẽ được gửi đến dịch vụ phiên dịch.
Để sau đó gọi Dịch vụ phiên dịch với headerValue này, và vượt qua văn bản của người dùng, bạn sẽ sử dụng mã như thế này:
Chuỗi txtToTranslate = TextBox1. Text; Chuỗi URI = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text =" + System. web. HttpUtility. UrlEncode (txtToTranslate) + "& từ = en & đến = es"; System .net. WebRequest translationWebRequest = hệ thống .net. WebRequest. Create (URI); translationWebRequest. headers. Add (Ủy quyền, headerValue); System .net. WebResponse phản hồi = Null; Response = translationWebRequest. GetResponse (); System. IO. Stream Stream = phản hồi. GetResponseStream (); System. Text. Encoding mã hóa = System. Text. Encoding. GetEncoding ("UTF-8"); System. IO. StreamReader translatedStream = Mới System. IO. StreamReader (dòng, mã hóa); System. xml. XmlDocument xTranslation = Mới System. xml. XmlDocument (); xTranslation. LoadXml (translatedStream. ReadToEnd ()); Literal1. Text = xTranslation. InnerText;
Hộp văn bản được gọi là ' TextBox1 ' để các văn bản mà người dùng gõ vào chỉ đơn giản là có thể được bắt nguồn từ đó. Sau đó, một URI cho dịch vụ HTTP Translator được tạo ra, và văn bản chính nó là UrlEncoded và được thêm vào URI.
Lưu ý rằng ngôn ngữ ' en ' được sử dụng cho ' từ ' (tức là, tôi giả sử bạn đang gõ bằng tiếng Anh), và ' ES ' được sử dụng cho ' to ' (tức là nó sẽ dịch sang tiếng Tây Ban Nha). Danh sách đầy đủ các mã cho các ngôn ngữ được hỗ trợ là ở đây: http://msdn.microsoft.com/en-us/library/hh456380.aspx
Dịch vụ phiên dịch trả về XML, do đó, mã gọi Dịch vụ, nhận được phản hồi dưới dạng XML và sau đó biến mã thành văn bản. Sau đó tải kết quả vào chữ mà bạn đã tạo trên about. aspx gọi là Literal1.
Bạn có thể nhìn thấy nó trong hành động ở đây:
Và đó là nó! Bây giờ bạn đã sử dụng Microsoft Translator API để thêm máy dịch sang ứng dụng ASP.NET của bạn.
Tóm tắt
Trong hướng này, bạn đã thấy làm thế nào để xây dựng một ứng dụng web bằng cách sử dụng ASP.NET và làm thế nào để thêm máy dịch sang nó. Bạn đã sử dụng Microsoft Translator widget để cung cấp bản dịch nội dung trang của bạn và bạn đã thấy cách chương trình Microsoft Translator API sử dụng C# để dịch nội dung do người dùng tạo.