Oprettelse af et webprogram med oversættelse fra Microsoft Translator.
Oprettelse af et webprogram med oversættelse fra Microsoft Translator.
I denne gennemgang lærer du, hvordan du opretter et webprogram, der bruger Microsoft Translator API til at oversætte tekst, som brugeren har indlæst. Du opbygger siden ved hjælp af ASP.NET og den gratis Visual Studio Express 2012 til web. Hvis du allerede har en Visual Studio installation, vil du stadig være i stand til at følge tutorial, bare springe trin 1.
Før du begynder, skal du tilmelde dig Microsoft Translator API i Azure. Der er en række forskellige tilbud, herunder en gratis en, og du kan se, hvordan du tilmelder dig den gratis service, registrere din app og få dine legitimationsoplysninger her:
http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx
Klient-id'et og klient hemmeligheden, som du genererer her, vil blive brugt i trin 4, så husk at notere dem.
Trin 1. Henter Visual Studio Express 2012 til internettet.
Den bedste måde at komme i gang på er at besøge http://www.asp.net/downloads og sluttet den ' oprette nu ' knap i den ' blive alt hos sig simpel oprette ' afdeling.
Dette vil lancere web platform Installer, som vil installere Visual Studio, ASP.NET, MVC og en lang række andre lækkerier, som du kan bruge til at bygge hjemmesider.
Trin 2. Opret webprogrammet
Kør Visual Studio, og vælg "nyt projekt" i menuen filer. Du vil se en dialogboks, der indeholder en liste over forskellige projekter, der er tilgængelige for dig at bygge hjemmesider med. Vælg ' Visual C# ' til venstre, og vælg derefter ' ASP.NET Web Forms Application ' fra listen.
Giv dit webprogram et navn, såsom ' oversætter ', og tryk på ' OK '. Visual Studio opretter nu alt det, du har brug for til at bygge og køre webprogrammet. Tryk F5 at bygge og køre programmet, og du vil se noget som dette:
Trin 3. Opretter BRUGERgrænseflade til tekst Oversættelse
I dette afsnit skal du føje kontrolelementer til det websted, hvor dine slutbrugere kan skrive noget tekst, trykke på knappen Oversæt og derefter se oversættelsen af den tekst, de har indtastet. Denne type funktionalitet er nyttig til interaktion med dine kunder, når du taler forskellige sprog, f. eks.
Find siden ' about. aspx ' i Solution Explorer. Åbn det i designeren, og du vil se noget som dette:
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:
For nemheds skyld, her er kilden til denne side:
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %> <ASP: indhold Runat= "Server" ID= "BodyContent" ContentPlaceHolderID-= "MainContent"> <hgruppe Klasse= "titel"> <h1><%: Titel %>.</h1> <h2>Din appbeskrivelses side.</h2> </hgruppe> <Artikel> Indtast den tekst, du gerne vil oversætte:<Br /> <ASP: tekstboks ID= "TextBox1" Runat= "Server" Højde= "25px" Bredde= "342px"></ASP: tekstboks> <ASP: knap ID= "Button1" Runat= "Server" Højde= "37px" Onclick= "Button1_Click" Tekst= "Oversæt" /> <Br /> Din oversatte tekst er:<Br /> <ASP: ordret ID= "Literal1" Runat= "Server"></ASP: ordret> </Artikel> <Sidebemærkning> <h3>Til side titel</h3> <P> Brug dette område til at angive yderligere oplysninger. </P> <Ul> <Li><A Runat= "Server" Href="~/">Hjem</A></Li> <Li><A Runat= "Server" Href= "~/About.aspx">Om</A></Li> <Li><A Runat= "Server" Href= "~/Contact.aspx">Kontakt</A></Li> </Ul> </Sidebemærkning> </ASP: indhold>
Bemærk, at i designeren skal du dobbeltklikke på knappen for at generere "Button1_Click" kode. Du skal skrive denne kode i næste trin.
Trin 4. Skrivning af kode til oversættelse af bruger tekst
I det forrige afsnit oprettede du en grundlæggende BRUGERgrænseflade til tekst Oversættelse. Det ville give brugeren mulighed for at skrive noget tekst, og tryk på en knap. I dette afsnit skal du skrive koden bag denne knap, som vil oversætte brugerens ønskede tekst til spansk, og gengive den på siden.
Først skal du føje en ny klasse til din løsning. Kald det AdmAccessToken og give det følgende kode:
Bruge System Bruge System. Collections. generisk; Bruge System. LINQ; Bruge System. Web; Navneområde oversætter { Offentlige Klasse AdmAccessToken { Offentlige Streng access_token { get; set; } Offentlige Streng token_type { get; set; } Offentlige Streng expires_in { get; set; } Offentlige Streng scope { get; set; } } }
Bemærk, at navnene på de 4 strenge skal matche, hvad der er her præcis, eller du vil få fejl i din kode senere.
Næste, i Visual Studio, i Solution Explorer, Højreklik på ' referencer ' mappe og vælg ' Tilføj reference '. Brug denne dialog, der følger, til at føje referencer til
– System. Runtime. serialization
– System. XML. LINQ
– System. ServiceModel. Web
Øverst i koden for About.aspx.cs kan du se en række ' using '-sætninger. Tilføj ved hjælp af system. xml. LINQ til disse, så det ser sådan ud:
Bruge System Bruge System. Collections. generisk; Bruge System. LINQ; Bruge System. Web; Bruge System. Web. UI; Bruge System. Web. UI. WebControls; Bruge System. xml. LINQ; Navneområde oversætter { Offentlige Delvis Klasse About : Page { Beskyttet Ugyldige Page_Load (Objekt afsender, EventArgs e) { } Beskyttet Ugyldige Button1_Click (Objekt afsender, EventArgs e) { } } }
Du kan se, at Button1_Click-koden er tom. Føj følgende kode til den. Denne kode får dit adgangstoken til oversættelsestjenesten ved hjælp af det klient-ID og den klient hemmelighed, du oprettede tidligere.
Streng clientID = "<Your ClientID>"; Streng clientSecret = "<Your Client Secret>"; String strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13"; Streng strRequestDetails = Streng. Format"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 = system .net. WebRequest. Create (strTranslatorAccessURI); webRequest. content type = "applikation/x-www-form-urlencoded"; webRequest. Method = POST; byte[] byte = system. Text. encoding. ASCII. GetBytes (strRequestDetails); webRequest. ContentLength = bytes. Længde Bruge (System.IO.Stream outputStream = webRequest.GetRequestStream()) { outputStream.Write(bytes, 0, bytes.Length); } System.Net.WebResponse webResponse = webRequest.GetResponse(); System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = Nye System. Runtime. serialization. JSON. DataContractJsonSerializer (Typeof(AdmAccessToken)); AdmAccessToken token = (AdmAccessToken) Serializer. ReadObject (webResponse. GetResponseStream ()); Streng headerValue = Bærer + token. access_token;
Denne kode udgør en POST til datamarkedet service, passerer dit ID og hemmelighed og få en JSON objekt tilbage. Derefter deserialiserer du objektet til en AdmAccessToken. Du kan derefter udlede access_token fra dette.
Dette token føjes derefter til en streng, der er Præfixet med "Bearer" (glem ikke pladsen) for at oprette en headerværdi, der sendes til oversættelsestjenesten.
Hen til så er der ikke mere hidkalde den oversætter service hos indeværende headerValue, og pass den brugernes ' tekst, youll ' hjælp kode på denne måde:
Streng txtToTranslate = TextBox1. Text; Streng 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. header. Add (Tilladelse, headerValue); System .net. WebResponse Response = Null; respons = translationWebRequest. GetResponse (); System. IO. stream-Stream = svar. GetResponseStream (); System. Text. encoding kode = system. Text. encoding. getencoding ("UTF-8"); System. IO. StreamReader translatedStream = Nye System. IO. StreamReader (Stream, encode); System. xml. XmlDocument xTranslation = Nye System. xml. XmlDocument (); xTranslation. LoadXml (translatedStream. ReadToEnd ()); Literal1. Text = Xoversæt. InnerText;
Tekstboksen blev kaldt ' TextBox1 ', så den tekst, som brugeren skrev i, kan simpelthen udledes af det. Derefter oprettes en URI til oversætteren HTTP-tjenesten, og selve teksten er UrlEncoded og føjet til URI'EN.
Bemærk, at sproget ' en ' bruges til ' fra ' (dvs., jeg antager, at du skriver på engelsk), og ' es ' bruges til ' to ' (dvs. det vil oversætte til spansk). Den fulde liste over disse koder for de understøttede sprog er her: http://msdn.microsoft.com/en-us/library/hh456380.aspx
Oversættelsestjenesten returnerer XML, så koden kalder tjenesten, får svaret som XML og derefter afkoder det til tekst. Derefter indlæses resultatet i den konstant, du oprettede på About. aspx, der hedder Literal1.
Du kan se det i aktion her:
Og det er det! Du har nu brugt Microsoft Translator API til at føje maskinoversættelse til dit ASP.NET-program.
Resumé
I denne gennemgang har du set, hvordan du opbygger et webprogram ved hjælp af ASP.NET, og hvordan du føjer maskinoversættelse til det. Du har brugt Microsoft Translator-widgeten til at levere oversættelsen af sidens indhold, og du har set, hvordan du kan programmere Microsoft Translator API ved hjælp af C# for at oversætte Brugergenereret indhold.