Webes alkalmazás létrehozása a Microsoft Translator által biztosított fordításokkal.
Webes alkalmazás létrehozása a Microsoft Translator által biztosított fordításokkal.
Ebben a forgatókönyvben megtudhatja, hogyan hozhat létre olyan webalkalmazást, amely a Microsoft Translator API-t használja a felhasználó által bevitt szöveg lefordításához. Youll ' épít a oldal használ ASP.NET és a szabad Látási Műterem Kifejez 2012 részére pókháló. Ha Ön már volna egy Látási Műterem bevezetés, youll ' csendes képesnek lenni megtenni követ a konzultáció, csak ugrál lép 1.
Megkezdése előtt, akkor be kell jelentkeznie a Microsoft Translator API-ban Azure. Vannak nagyszámú különböző felajánlás, beleértve egy szabad egy, és tudod lát hogyan viselkedni jel megjelöl részére a szabad szolgáltatás, beiktat-a app és kap-a megbízólevél itt:
http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx
Az itt generált ügyfél-azonosító és ügyfél-titok a 4. lépésben kerül felhasználásra.
Lépés 1. A Visual Studio Express 2012 for web első beolvasása.
A kezdéshez a legjobb módja, ha ellátogat http://www.asp.net/downloads és kiválaszt a ' felszerel most ' gomb-ban ' kap minden-val egy egyszerű felszerel ' rész.
Ez akarat dob a pókháló emelvény beiktató melyik akarat felszerel Látási Műterem, ASP.NET, MVC és egy egész házigazda-ból más nyalánkság amit tudod használ-hoz épít websites.
2. lépés Webalkalmazás létrehozása
Futtassa a Visual Studio programot, és a fájl menüből válassza az "új projekt" menüpontot. Megjelenik egy párbeszédpanel, amelyen a különböző projektek érhetők el, amelyek segítségével webhelyeket készíthet. A bal oldalon válassza a "Visual C#"-t, majd válassza ki a "ASP.NET webűrlapok alkalmazás" listaelemeket.
Adjon nevet a webalkalmazásnak (például "fordító"), majd nyomja meg az "OK" gombot. Látási Műterem akarat most teremt minden sírnod kell épít és fuss a pókháló alkalmazás. Sajtó F5-hoz épít és fuss a alkalmazás és youll ' lát némileg hasonló ez:
Lépés 3. A Szövegfordítás felhasználói felületének létrehozása
Ebben a szakaszban vezérlőket adhat hozzá a webhelyhez, amelyek lehetővé teszik a végfelhasználók számára, hogy bizonyos szövegeket írhatnak be, egy fordító gombot megnyomnak, majd a beírt szöveg fordítását látják. Ez a funkciótípus akkor hasznos, ha például különböző nyelveken beszél az ügyfelekkel.
A Megoldástallózőből keresse meg az "about. aspx" lapot. Nyisd ki a Designer, és látni fogod, valahogy így:
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:
Az Ön kényelme, itt a forrás ezen az oldalon:
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %> <ASP: tartalom runat= "kiszolgáló" ID= "BodyContent" ContentPlaceHolderID azonosító= "MainContent"> <hcsoport Osztály= "title"> <h1><%: Cím %>.</h1> <h2>Az alkalmazásleíró oldal.</h2> </hcsoport> <Cikk> Írd be a lefordítani kívánt szöveget:<Br /> <ASP: szövegdoboz ID= "TextBox1" runat= "kiszolgáló" Magasság= "25px" Szélesség= "342px"></ASP: szövegdoboz> <ASP: gomb ID= "Button1" runat= "kiszolgáló" Magasság= "37px" Onclick= "Button1_Click" Szöveg= "Fordítás" /> <Br /> A lefordított szöveg:<Br /> <ASP: literál ID= "Literal1" runat= "kiszolgáló"></ASP: literál> </Cikk> <Félre> <h3>Hatályon kívül cím</h3> <P> Ezen a területen további információkat is szolgáltat. </P> <Ul> <Li><A runat= "kiszolgáló" Href="~/">Otthon</A></Li> <Li><A runat= "kiszolgáló" Href= "~/About.aspx">Körülbelül</A></Li> <Li><A runat= "kiszolgáló" Href= "~/Contact.aspx">Kapcsolat</A></Li> </Ul> </Félre> </ASP: tartalom>
Ne feledje, hogy a tervező akkor kattintson duplán a gombra, hogy létrehoz a "Button1_Click" kódot. Ezt a kódot a következő lépésben megírom.
4. lépés Kódírás a felhasználói szöveg lefordításához
Az előző szakaszban létrehoztunk egy alapvető felhasználói felületet a szövegfordításhoz. Ez lehetővé tenné a felhasználó számára, hogy írjon egy szöveget, és nyomjon meg egy gombot. Ebben a részben, akkor írja be a gombot, hogy a gomb, amely lefordítja a felhasználó a kívánt szöveget a spanyol, és tegye meg az oldalon.
Első, youll ' szükség-hoz összead egy új osztály-hoz-a oldat. Nevezni AdmAccessToken és adja meg a következő kódot:
Használ Rendszer Használ System. gyűjtemények. Generic; Használ System. LINQ; Használ System. Web; Névtér fordító { Nyilvános Osztály AdmAccessToken { Nyilvános Karakterlánc access_token { get; set; } Nyilvános Karakterlánc token_type { get; set; } Nyilvános Karakterlánc expires_in { get; set; } Nyilvános Karakterlánc scope { get; set; } } }
Ne feledje, hogy a nevét a 4 húrok kell egyeznie, mi itt pontosan, vagy kapsz hibát a kódot később.
Következő, bent Látási Műterem,-ban oldat felfedező, jobb kettyenés-on ' utalások ' dosszié és kiválaszt ' összead ajánlás '. Ezzel a párbeszédablakban hivatkozásokat adhat hozzá
– System. Runtime. serialization
– System. XML. LINQ
– System. ServiceModel. Web
Tetején a kódot a About.aspx.cs, akkor megjelenik egy sor "használ" nyilatkozatok. Add hozzá System. xml. LINQ ezeket, így néz ki:
Használ Rendszer Használ System. gyűjtemények. Generic; Használ System. LINQ; Használ System. Web; Használ System. Web. UI; Használ System. Web. UI. WebControls; Használ System. xml. LINQ; Névtér fordító { Nyilvános Részleges Osztály About : Page { Védett Void Page_Load (Objektum feladó, EventArgs e) { } Védett Void Button1_Click (Objektum feladó, EventArgs e) { } } }
Youll ' lát amit a Button1_Click kód van üres. Adja hozzá az alábbi kódkódot. Ez a kód megkapja a fordítószolgáltatás hozzáférési tokenjét a korábban létrehozott ügyfél-azonosító és ügyfél-titok használatával.
Karakterlánc clientID = "<Your ClientID>"; Karakterlánc clientSecret = "<Your Client Secret>"; String strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13"; String strRequestDetails = Karakterlánc. Formátum"grant_type=client_credentials&client_id={0}&client_secret={1} &scope=http://api.microsofttranslator.com", HttpUtility. UrlEncode (clientID), HttpUtility. UrlEncode (clientSecret)); System .net. WebRequest webRequest = rendszer .net. WebRequest. Create (strTranslatorAccessURI); webRequest. ContentType = "application/x-www-forma-urlencoded"; webRequest. Method = POST; byte[] Bytes = System. Text. Encoding. ASCII. Getbyte (strRequestDetails); webRequest. ContentLength = bájtok. Hossza Használ (System.IO.Stream outputStream = webRequest.GetRequestStream()) { outputStream.Write(bytes, 0, bytes.Length); } System.Net.WebResponse webResponse = webRequest.GetResponse(); System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = Új System. Runtime. serialization. JSON. DataContractJsonSerializer (typeof(AdmAccessToken)); AdmAccessToken token = (AdmAccessToken) Serializer. ReadObject (webResponse. GetResponseStream ()); Karakterlánc headerValue = Hordozója + token. access_token;
Ez a kód alkot POST az adatok piaci szolgáltatás, halad el AZONOSÍTÓJÁT és titkos, és kapok egy JSON tárgyat vissza. Ezután az objektumot egy AdmAccessToken objektumba deszerializálhatja. Ezután ebből a access_token származhat.
Ezt a tokent a "hordozóra" előadott karakterlánccal egészítette ki (ne felejtse el a szóközt), hogy egy fejléc értéket hozzon létre, amelyet a fordítószolgáltatásnak küld a rendszer.
-Hoz akkor hív a fordító szolgáltatás ezzel headerValue, és hágó a használók ' szöveg, youll ' használ kód mint ez:
Karakterlánc txtToTranslate = TextBox1. szöveg; Karakterlánc URI = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text =" + System. Web. HttpUtility. UrlEncode (txtToTranslate) + "a reggeli és a = es"; System .net. WebRequest translationWebRequest = rendszer .net. WebRequest. Create (URI); translationWebRequest. headers. Add (Engedély, headerValue); System .net. WebResponse válasz = Null; Válasz = translationWebRequest. GetResponse (); System. IO. stream stream = válasz. GetResponseStream (); System. Text. Encoding rejtjelez = rendszer. Text. kódolás. GetEncoding ("UTF-8"); System. IO. StreamReader translatedStream = Új System. IO. StreamReader (stream, kódolás); System. xml. XmlDocument xTranslation = Új System. xml. XmlDocument (); xTranslation. LoadXml (translatedStream. ReadToEnd ()); Literal1. Text = Xfordítás. InnerText;
A szöveg doboz volt hívott ' TextBox1 ' tehát a szöveg a felhasználó gépelt-ban tud egyszerűen lenni származott-ból amit. Aztán, egy URI-hoz fordító HTTP szolgáltatás van teremtett, és a szöveg maga van UrlEncoded és hozzáadott-hoz URI.
Megjegyzendő, hogy a nyelv "en" használják a "from" (azaz, én vagyok feltételezve, hogy te gépelés angolul), és a "es" használják a "to" (azaz ez lesz lefordítani spanyol). A támogatott nyelvek kódjainak teljes listája itt található: http://msdn.microsoft.com/en-us/library/hh456380.aspx
A fordítószolgálat visszaadja az XML-t, így a kód meghívja a szolgáltatást, megkapja a választ XML-ként majd dekódolja szöveggé. Ezt követően az eredményt a "about. aspx" néven Literal1 nevű Szövegkonstansba tölti be.
Láthatjuk, hogy a cselekvés itt:
És ez az! Youve ' most használt a Mikroszkóp fordító API-hoz összead gép fordítás-hoz-a ASP.NET alkalmazás.
Összefoglaló
Ebben a forgatókönyvben, akkor látta, hogyan kell felépíteni egy webes alkalmazás segítségével ASP.NET és hogyan adjunk a gépi fordítás hozzá. Használta a Microsoft Translator widget, hogy a fordítást az oldal tartalmát, és látta, hogyan kell programozni a Microsoft Translator API-t használ, annak érdekében, hogy lefordítsa a felhasználók által generált tartalmak.