Vrijeme Jeli na glavniju
Prevoditelj
Ova stranica automatski je prevedena pomoću servisa za strojno prevođenje tvrtke Microsoft Translator. Saznajte više

Blog Microsoft prevoditelj

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".

clip_image001

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.

clip_image003

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:

clip_image005

 

 

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:

clip_image016

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:

clip_image018

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:

clip_image019

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.