Microsoft Translator tarafından sağlanan çeviri ile bir Web uygulaması oluşturma.
Microsoft Translator tarafından sağlanan çeviri ile bir Web uygulaması oluşturma.
Bu Izlenecek yolda, Kullanıcı tarafından girilen metni çevirmek için Microsoft Translator API 'sini kullanan bir Web uygulaması oluşturmayı öğreneceksiniz. Web için ASP.NET ve ücretsiz Visual Studio Express 2012 kullanarak sayfayı oluşturacaksın. Zaten bir Visual Studio yüklemenizin varsa, yine de öğretici takip edebilirsiniz, sadece adım 1 atlayın.
Başlamadan önce, Azure 'da Microsoft Translator API 'sine kaydolmak gerekir. Ücretsiz bir dahil olmak üzere farklı teklifler, bir dizi vardır ve ücretsiz hizmet için kaydolmak için nasıl görebilirsiniz, uygulamanızı kaydetmek ve burada kimlik bilgilerini almak:
http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx
Burada oluşturacaksınız Istemci KIMLIĞI ve Istemci gizli adım 4 ' te kullanılacaktır, bu nedenle bunları not tutun.
Adım 1. Web için Visual Studio Express 2012 alma.
Başlamak için en iyi yolu ziyaret etmektir http://www.asp.net/downloads ve ' tek bir basit yükleme ile her şeyi al ' bölümünde ' Şimdi Yükle ' düğmesini seçin.
Bu, Visual Studio, ASP.NET, MVC ve Web siteleri oluşturmak için kullanabileceğiniz diğer goodies bir bütün ana yükleyecektir web platformu Installer başlatacak.
Adım 2. Web uygulaması oluşturma
Visual Studio 'yu çalıştırın ve Dosya menüsünden ' yeni proje ' seçeneğini belirleyin. Web siteleri oluşturmak için kullanılabilen farklı projelerin listesini içeren bir iletişim kutusu görürsünüz. Sol tarafta ' Visual C# ' seçin ve listeden ' ASP.NET Web Forms uygulaması ' seçin.
Web uygulamanıza ' çevirmen ' gibi bir ad verin ve ' Tamam ' tuşuna basın. Visual Studio şimdi oluşturmak ve Web uygulamasını çalıştırmak için gereken her şeyi oluşturur. Oluşturmak ve uygulamayı çalıştırmak için F5 tuşuna basın ve böyle bir şey görürsünüz:
Adım 3. Metin çevirisi için Kullanıcı arabirimi oluşturma
Bu bölümde, siteye son kullanıcılarınızın bazı metinleri yazmalarına izin veren denetimler ekleyeceksiniz, bir çevir düğmesine basın ve ardından girdikleri metnin çevirisine bakın. Bu tür işlevler, örneğin farklı dillerde konuşurken müşterilerinizle etkileşimde bulunmak için yararlıdır.
Çözüm Gezgini 'Nden, ' about. aspx ' sayfasını bulun. Tasarımcıda açın ve böyle bir şey görürsünüz:
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:
Kolaylık sağlamak Için, burada bu sayfanın kaynağı:
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %> <ASP: Içerik Runat= "sunucu" KIMLIĞI= "BodyContent" ContentPlaceHolderID= "MainContent"> <hgroup Sınıfı= "başlık"> <h1><%: Başlık %>.</h1> <h2>Uygulama Açıklama sayfanız.</h2> </hgroup> <Makale> Çevirmek istediğiniz metni girin:<Br /> <ASP: TextBox KIMLIĞI= "TextBox1" Runat= "sunucu" Yükseklik= "25px" Genişlik= "342px"></ASP: TextBox> <ASP: düğme KIMLIĞI= "Button1" Runat= "sunucu" Yükseklik= "37px" Onclick= "Button1_Click" Metin= "Çevir" /> <Br /> Çevrilmiş metniniz:<Br /> <ASP: değişmez değer KIMLIĞI= "Literal1" Runat= "sunucu"></ASP: değişmez değer> </Makale> <Kenara> <h3>Kenara başlık</h3> <P> Ek bilgi sağlamak için bu alanı kullanın. </P> <Ul> <Li><A Runat= "sunucu" Href="~/">Ev</A></Li> <Li><A Runat= "sunucu" Href= "~/About.aspx">Hakkı -nda</A></Li> <Li><A Runat= "sunucu" Href= "~/Contact.aspx">İlgili kişi</A></Li> </Ul> </Kenara> </ASP: Içerik>
Tasarımcıda "Button1_Click" kodu oluşturmak için düğmeyi çift tıklatmalısınız unutmayın. Bu kodu bir sonraki adımda yazacaksın.
Adım 4. Kullanıcı metnini çevirmek için kod yazma
Önceki bölümde, metin çevirisi için temel bir kullanıcı arabirimi oluşturdunuz. Bu Kullanıcı bazı metin yazmak ve bir düğmeye basın izin verir. Bu bölümde, kullanıcının istediği metni Ispanyolca 'ya çevirecek ve sayfada işlemek için bu düğmenin arkasındaki kodu yazacaksınız.
Ilk olarak, çözümünüze yeni bir sınıf eklemeniz gerekir. Çağrı Özel muhasebe ve aşağıdaki kodu verin:
Kullan -arak System Kullan -arak System. Collections. Generic; Kullan -arak System. Linq; Kullan -arak System. Web; Ad alanı Translator { Kamu Sınıfı AdmAccessToken { Kamu Dize access_token { get; set; } Kamu Dize token_type { get; set; } Kamu Dize expires_in { get; set; } Kamu Dize scope { get; set; } } }
4 dizelerin adları burada tam olarak eşleşmelidir veya kodunuzda daha sonra hata alırsınız unutmayın.
Ardından, Visual Studio içinde Solution Explorer 'da ' References ' klasörüne sağ tıklayın ve ' başvuru Ekle 'yi seçin. Başvurular eklemek için aşağıdaki Bu iletişim kutusunu kullanın
– System. Runtime. Serialization
– System. XML. Linq
– System. ServiceModel. Web
About.aspx.cs için kodunuzun en üstünde, bir dizi ' Using ' ifadesi görürsünüz. Bu gibi görünüyor, böylece System. xml. Linq kullanarak ekleyin:
Kullan -arak System Kullan -arak System. Collections. Generic; Kullan -arak System. Linq; Kullan -arak System. Web; Kullan -arak System. Web. UI; Kullan -arak System. Web. UI. WebControls; Kullan -arak System. xml. Linq; Ad alanı Translator { Kamu Kısmi Sınıfı About : Page { Korumalı Void Page_Load (Nesne gönderen, EventArgs e) { } Korumalı Void Button1_Click (Nesne gönderen, EventArgs e) { } } }
Button1_Click kodunun boş olduğunu görürsünüz. Aşağıdaki kodu ekleyin. Bu kod, daha önce oluşturduğunuz Istemci KIMLIĞI ve Istemci sırrı 'nı kullanarak çevirici hizmeti için erişim belirtecinizi alacaktır.
Dize ClientID = "<Your ClientID>"; Dize clientSecret = "<Your Client Secret>"; Dize strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13"; Dize strRequestDetails = Dize. Biçimi"grant_type=client_credentials&client_id={0}&client_secret={1} &scope=http://api.microsofttranslator.com", HttpUtility. UrlEncode (ClientID), HttpUtility. UrlEncode (Istemci gizli)); System .net. WebRequest webRequest = System .net. WebRequest. Create (strTranslatorAccessURI); webRequest. ContentType = "uygulama/x-www-form-urlencoded"; webRequest. Method = POST; Bayt[] bayt = System. Text. Encoding. ASCII. GetByte (strRequestDetails); webRequest. ContentLength bayt =. Uzunluğu Kullan -arak (System.IO.Stream outputStream = webRequest.GetRequestStream()) { outputStream.Write(bytes, 0, bytes.Length); } System.Net.WebResponse webResponse = webRequest.GetResponse(); System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = Yeni System. Runtime. Serialization. JSON. DataContractJsonSerializer (Typeof(AdmAccessToken)); AdmAccessToken token = (AdmAccessToken) seri hale getirici. ReadObject (webResponse. GetResponseStream ()); Dize headerValue = Taşıyıcı + Token. access_token;
Bu kod, KIMLIK ve gizli geçiş ve bir JSON nesnesi geri alma, veri piyasa hizmeti için bir POST oluşturur. Sonra bu nesne bir AdmAccessToken serisini. Sonra türetmek access_token bu.
Bu belirteç sonra çevirici hizmetine gönderilecek bir üstbilgi değeri oluşturmak için "Bearer" (boşluk unutmayın) ile öneki bir dizeye eklenir.
Daha sonra bu headerValue ile çevirmen hizmetini çağırmak ve kullanıcının metnini geçirmek Için aşağıdaki gibi kodu kullanırsınız:
Dize txtToTranslate = TextBox1. Text; Dize 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 (Yetkilendirme, headerValue); System .net. WebResponse yanıt = Null; Yanıt translationWebRequest. GetResponse () =; System. ıO. Stream akış = yanıt. GetResponseStream (); System. Text. Encoding kodlama = System. Text. Encoding. GetEncoding ("UTF-8"); System. ıO. StreamReader translatedStream = Yeni System. ıO. StreamReader (Stream, encode); System. xml. XmlDocument xTranslation = Yeni System. xml. XmlDocument (); xTranslation. LoadXml (translatedStream. ReadToEnd ()); Literal1. Text = xTranslation. InnerText;
Metin kutusu çağrıldı ' TextBox1 ' böylece metin Kullanıcı sadece ondan türetilebilir yazılan. Bundan sonra bir URI çevirici HTTP hizmeti oluşturulur ve metnin kendisi UrlEncoded ve URI eklenir.
' En ' dili ' Kimden ' için kullanıldığını unutmayın (yani, Ingilizce yazmakta olduğunuz varsayım) ve ' es ' ' to ' için kullanılır (yani Ispanyolca 'ya çevirecektir). Desteklenen diller için bu kodların tam listesi burada: http://msdn.microsoft.com/en-us/library/hh456380.aspx
Çeviri hizmeti XML döndürür, böylece kod hizmeti çağırır, yanıt XML olarak alır ve sonra metne kodunu çözer. Daha sonra sonucu içine yükler literal Literal1 adlı about. aspx üzerinde oluşturduğunuz.
Burada eylem görebilirsiniz:
İşte bu! Artık ASP.NET uygulamanıza makine çevirisi eklemek için Microsoft Translator API 'sini kullandık.
Özet
Bu izlenecek yolda, ASP.NET kullanarak bir Web uygulaması oluşturma ve makine çevirisi nasıl eklenmesini gördünüz. Sayfa içeriğinizin çevirisi sağlamak için Microsoft Translator widget 'ı kullanılır ve Kullanıcı tarafından oluşturulan içeriği çevirmek için C# kullanarak Microsoft Translator API 'sini program nasıl gördünüz.