Stvaranje web-aplikacije s prijevodom koji je dostavio Microsoft Translator.
Stvaranje web-aplikacije s prijevodom koji je dostavio Microsoft Translator.
U ovom prikazu naučit ćete kako stvoriti web-aplikaciju koja koristi Microsoftov prevoditelj API-ja za prevođenje teksta koji je unos od strane korisnika. Izgradit ćete stranicu pomoću ASP.NET i besplatnog Visual Studio Expressa 2012 za web. Ako već imate instalaciju Visual Studio, i dalje ćete biti u mogućnosti slijediti tutorial, samo preskočite korak 1.
Prije početka morat ćete se prijaviti za Microsoftov prevoditelj za API u servisu Azure. Postoji niz različitih ponuda, uključujući i besplatnu, a možete vidjeti kako se prijaviti za besplatnu uslugu, registrirati svoju aplikaciju i dobiti svoje vjerodajnice ovdje:
http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx
ID klijenta i klijentska tajna koju generirate ovdje će se koristiti u koraku 4, pa ih Imajte na umu.
Korak 1. Dobivanje Visual Studio Express 2012 za web.
Najbolji način za početak je posjetiti http://www.asp.net/downloads i odaberite gumb "Instaliraj sada" u odjeljku "Nabavite sve s jednom jednostavnom instalacijom".
To će pokrenuti web Platform Installer koji će instalirati Visual Studio, ASP.NET, MVC i cijeli niz drugih Goodies koje možete koristiti za izgradnju web stranice.
Korak 2. Stvaranje web-aplikacije
Pokrenite Visual Studio i na izborniku Datoteka odaberite "novi projekt". Vidjet ćete dijalog koji sadrži popis različitih projekata koji su dostupni za izgradnju web-mjesta. Odaberite ' Visual C# ' na lijevoj strani, a zatim odaberite ' ASP.NET web Forms Application ' s popisa.
Dajte web-aplikaciji naziv, kao što je ' prevoditelj ' i pritisnite ' OK '. Visual Studio će sada stvoriti sve što vam je potrebno za izgradnju i pokretanje web-aplikacije. Pritisnite F5 za izgradnju i pokretanje aplikacije i vidjet ćete nešto ovako:
Korak 3. Stvaranje korisničkog sučelja za prijevod teksta
U ovom odjeljku Dodat ćete kontrole na web-mjesto koje krajnjim korisnicima omogućuje unos nekog teksta, pritisnite gumb za prevođenje, a zatim pogledajte prijevod teksta koji su unijeli. Ova vrsta funkcionalnosti korisna je za interakciju s klijentima kada govorite različite jezike, na primjer.
Iz eksplorera za rješenja pronađite stranicu ' o. aspx '. Otvorite ga u dizajneru i vidjet ćete nešto ovako:
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:
Za vašu praktičnost, evo izvora za ovu stranicu:
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %> <ASP: sadržaj runat= "poslužitelj" ID= "BodyContent" ContentPlaceHolderID= "MainContent"> <hgrupa Klase= "Title"> <h1><%: Titula %>.</h1> <h2>Stranica s opisom aplikacije.</h2> </hgrupa> <Članak> Unesite tekst koji želite prevesti:<Br /> <ASP: tekstni okvir ID= "TextBox1" runat= "poslužitelj" Visina= "25px" Širina= "342px"></ASP: tekstni okvir> <ASP: gumb ID= "Button1" runat= "poslužitelj" Visina= "37px" Onclick= "Button1_Click" Tekst= "Prevedite" /> <Br /> Prevedeni tekst je:<Br /> <ASP: doslovni ID= "Literal1" runat= "poslužitelj"></ASP: doslovni> </Članak> <Stranu> <h3>Na stranu naslov</h3> <P> Koristite ovo područje da biste pružili dodatne informacije. </P> <Ul> <li><A runat= "poslužitelj" Href="~/">Kući</A></li> <li><A runat= "poslužitelj" Href= "~/O ' A.aspx">O</A></li> <li><A runat= "poslužitelj" Href= "~/Contact.aspx">Kontakti</A></li> </Ul> </Stranu> </ASP: sadržaj>
Napominjemo da u dizajneru trebate dvaput kliknuti gumb za generiranje koda "Button1_Click". Napisat ćete ovu šifru u sljedećem koraku.
Korak 4. Pisanje koda za prevođenje korisničkog teksta
U prethodnom odjeljku kreirali ste osnovno korisničko sučelje za prijevod teksta. Omogućio bi korisniku da napiše neki tekst i pritisnite gumb. U ovom odjeljku Napisat ćete kôd iza tog gumba koji će prevesti željeni tekst korisnika na španjolski i prikazati ga na stranici.
Prvo ćete morati dodati novu klasu u svoje rješenje. Nazovi to. Prijem i dati mu sljedeći kod:
Koristeći Sustav Koristeći Sustav. kolekcije. generički; Koristeći System. LINQ; Koristeći System. web; Namespace prevoditelj { Javno Klase AdmAccessToken { Javno Niz access_token { get; set; } Javno Niz token_type { get; set; } Javno Niz expires_in { get; set; } Javno Niz scope { get; set; } } }
Napominjemo da se nazivi 4 nizova trebaju podudarati s onim što je ovdje točno ili ćete kasnije dobiti pogreške u kodu.
Dalje, u programu Visual Studio, u eksploreru za rješenje, desnom tipkom miša kliknite mapu "Reference" i odaberite "Dodaj referencu". Koristite ovaj dijalog koji slijedi da biste dodali reference na
– System. Runtime. serijalizacija
– System. XML. LINQ
– System. ServiceModel. web
Pri vrhu koda za About.aspx.cs vidjet ćete broj "korištenje" izjava. Dodajte pomoću sustava System. XML. LINQ na ove, tako da izgleda ovako:
Koristeći Sustav Koristeći Sustav. kolekcije. generički; Koristeći System. LINQ; Koristeći System. web; Koristeći System. web. UI; Koristeći Sustav. web. UI. WebControls; Koristeći System. XML. LINQ; Namespace prevoditelj { Javno Djelomična Klase About : Page { Zaštićen Prazninu Page_Load (Objekt pošiljatelj, EventArgs e) { } Zaštićen Prazninu Button1_Click (Objekt pošiljatelj, EventArgs e) { } } }
Vidjet ćete da je Button1_Click kod prazan. Dodajte sljedeći kôd. Ovaj kôd će dobiti vaš pristupni token za uslugu prevoditelja, koristeći ID klijenta i klijentsku tajnu koju ste stvorili ranije.
Niz Klijentid = "<Your ClientID>"; Niz Tajna klijentova = "<Your Client Secret>"; String strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13"; Niz strRequestDetails = Niz. Format"grant_type=client_credentials&client_id={0}&client_secret={1} &scope=http://api.microsofttranslator.com", HttpUtility. UrlEncode (clientID), HttpUtility. UrlEncode (clientSecret)); Sustav .net. WebRequest Web REQUEST = sustav .net. WebRequest. Create (strTranslatorAccessURI); Web-zahtjev. ContentType = "aplikacija/x-www-Form-urlkriptirana"; Web-zahtjev. Method = POST; bajt[] bajtova = sustav. text.,, kodiranja. ASCII. GetBytes (strRequestDetails); webRequest. ContentLength = bajtova. Duljina Koristeći (System.IO.Stream outputStream = webRequest.GetRequestStream()) { outputStream.Write(bytes, 0, bytes.Length); } System.Net.WebResponse webResponse = webRequest.GetResponse(); System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = Novi System. Runtime. serijalizacija. JSON. Datacontractjsonseralizer (Kakav(AdmAccessToken)); AdmAccessToken token = (AdmAccessToken) seralizator. ReadObject (webResponse. GetResponseStream ()); Niz Vrijednost za headerValue = Nositelj + Token. access_token;
Ova šifra formira POST na tržištu podataka usluga, prolazi svoj ID i tajna i dobivanje JSON objekt natrag. Ti onda deserijalizirati taj objekt u. Onda možete izvući access_token iz ovoga.
Taj se token zatim dodaje nizu, s prefiksnim naslovom "nositelj" (ne zaboravite prostor) kako biste stvorili vrijednost zaglavlja koja će biti poslana usluzi prevoditelja.
Da biste zatim nazvali prevoditeljicu uslugom s tom vrijednošću headerValue i prošli korisnički tekst, koristit ćete kôd kao što je ovaj:
Niz txtToTranslate = TextBox1. Text; Niz Uri = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text =" + Sustav. web. HttpUtility. UrlEncode (txtToTranslate) + "& from = en & to = es"; Sustav .net. WebRequest translationWebRequest = sustav .net. WebRequest. Create (URI); translationWebRequest. zaglavlja. Add (Odobrenje, glavnog vrijednosti); System .net. WebResponse odaziv = Null; odgovor = prevoditelj. GetResponse (); Sustav. IO. tok toka = odgovor. GetResponseStream (); Šifriranje sustava. text. enkodiranje = sustav. text."UTF-8"); Sustav. IO. StreamReader Novi Sustav. IO. StreamReader (tok, kodiranje); Sustav. XML. XmlDocument xTranslation = Novi System. XML. XmlDocument (); xTranslation. LoadXml (Translation Edstream. ReadToEnd ()); Literal1. tekst = xTranslation. InnerText;
Tekstni okvir je nazvan ' TextBox1 ' tako da tekst koji je korisnik upisali može jednostavno biti izveden iz toga. Nakon toga se kreira URI za prevoditelj HTTP servis, a sam tekst je Urlkodiran i dodan URI-ju.
Imajte na umu da se jezik "en" koristi za "od" (tj. Pretpostavljam da tipkate na engleskom), a "es" se koristi za "to" (tj. to će se prevesti na španjolski). Potpuni popis tih kodova za podržane jezike je ovdje: http://msdn.microsoft.com/en-us/library/hh456380.aspx
Usluga prevoditelja vraća XML, tako da kod poziva uslugu, dobiva odgovor kao XML, a zatim ga dekodira u tekst. Zatim učitava rezultat u doslovan koji ste stvorili na o. aspx zove Literal1.
Možete ga vidjeti u akciji ovdje:
I to je to! Sada ste koristili Microsoftov prevoditelj API da biste dodali strojno prevođenje u svoju ASP.NET aplikaciju.
Sažetak
U ovom prikazu vidjeli ste kako izgraditi web-aplikaciju pomoću ASP.NET i kako dodati strojno prevođenje na njega. Koristili ste Microsoftov Prevoditelj Widget za pružanje prijevoda sadržaja stranice i vidjeli ste kako programirati Microsoft Translate API pomoću C# kako bi prevedili Korisnički generirani sadržaj.