Gå til hovedinnhold
Oversetter
Denne siden er automatisk oversatt av Microsoft Translator sin maskinoversettelsestjeneste. få mer informasjon

Microsoft oversetter blogg

Opprette en web-applikasjon med oversettelse levert av Microsoft Translator.

Opprette en web-applikasjon med oversettelse levert av Microsoft Translator.

I denne gjennomgangen lærer du hvordan du oppretter et Web program som bruker Microsoft Translator API til å oversette tekst som ble skrevet inn av brukeren. Du bygger siden ved hjelp av ASP.NET og den gratis Visual Studio Express 2012 for Web. Hvis du allerede har en Visual Studio-installasjon, vil du fortsatt kunne følge veiledningen, bare hopp over trinn 1.

Før du begynner, må du registrere deg for Microsoft Translator API i Azure. Det finnes en rekke ulike tilbud, inkludert en gratis en, og du kan se hvordan du registrerer deg for gratis tjeneste, registrere din app og få legitimasjon her:

http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx

Client ID og Client Secret som du genererer her vil bli brukt i trinn 4, så hold et notat av dem.

Trinn 1. Henter Visual Studio Express 2012 for Web.

Den beste måten å komme i gang på er å besøke http://www.asp.net/downloads og velg "Installer nå"-knappen i "få alt med en enkel installasjon"-delen.

clip_image001

Dette vil lansere Web Platform Installer som vil installere Visual Studio, ASP.NET, MVC og en hel rekke andre godbiter som du kan bruke til å bygge nettsteder.

Trinn 2. Opprette Web programmet

Kjør Visual Studio, og velg nytt prosjekt på Fil-menyen. Du vil se en dialogboks som inneholder en liste over ulike prosjekter som er tilgjengelige for deg å bygge nettsteder med. Velg "Visual C#" til venstre, og velg deretter "ASP.NET Web Forms Application" fra listen.

clip_image003

Gi webprogrammet et navn, for eksempel "oversetter", og trykk på ' OK '. Visual Studio oppretter nå alt du trenger for å bygge og kjøre Web programmet. Trykk F5 for å bygge og kjøre programmet, og du vil se omtrent slik ut:

clip_image005

 

 

Trinn 3. Opprette brukergrensesnitt for tekst oversettelse

I denne delen skal du legge til kontroller på området som gjør at sluttbrukerne kan skrive inn tekst, trykke en oversetter-knapp og deretter se oversettelsen av teksten de skrev inn. Denne typen funksjonalitet er nyttig for å samhandle med kundene når du for eksempel snakker forskjellige språk.

Finn "om. aspx"-siden i Solution Explorer. Åpne den i designeren, og du vil se omtrent slik ut:

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

For enkelhets skyld, her er kilden for denne siden:

<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %>

<ASP: innhold Runat= "server" ID= "BodyContent" ContentPlaceHolderID= "MainContent">
    <hgroup Klasse= "tittel">
        <h1><%: Tittel %>.</h1>
        <h2>Beskrivelsessiden for appen din.</h2>
    </hgroup>

    <Artikkelen>
        Skriv inn teksten du vil oversette:<Br />
        <ASP: tekstboks ID= "TextBox1" Runat= "server" Høyde= "25px" Bredde= "342px"></ASP: tekstboks>
        <ASP: knapp ID= "Button1" Runat= "server" Høyde= "37px" Onclick= "Button1_Click" Tekst= "Oversett" />
        <Br />
        Din oversatt tekst er:<Br />
        <ASP: litteral ID= "Literal1" Runat= "server"></ASP: litteral>
    </Artikkelen>

    <Side>
        <h3>Bortsett tittel</h3>
        <P>        
            Bruk dette området til å angi tilleggsinformasjon.
        </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>
    </Side>
</ASP: innhold>

Note det inne det designer du burde dobbel-falle i staver på knapp å utvikle det "Button1_Click" koden. Du skal skrive denne koden i neste trinn.

Trinn 4. Skrive kode for å oversette bruker tekst

I den forrige delen opprettet du et grunnleggende brukergrensesnitt for tekst oversetting. Den ville tillate brukeren å skrive noe tekst, og presse en knapp. I denne delen vil du skrive koden bak den knappen som vil oversette brukerens ønsket tekst til spansk, og gjengi den på siden.

Først må du legge til en ny klasse i løsningen. Kall det AdmAccessToken og gi den følgende kode:

Bruke System
Bruke System. Collections. Generic;
Bruke System. LINQ;
Bruke System. Web;

Navneområdet Oversetter {
    Offentlig Klasse AdmAccessToken {
        Offentlig Streng access_token { get; set; }
        Offentlig Streng token_type { get; set; }
        Offentlig Streng expires_in { get; set; }
        Offentlig Streng scope { get; set; }
    }
}

 

Merk at navnene på de 4 strengene skal samsvare med det som er her nøyaktig, eller du vil få feil i koden senere.

Neste, innenfor synlig atelier, inne løsning utforske, rett falle i staver på ' henvisning ' brosjyre og velge ' sammenlegge henvisning '. Bruk denne dialogen som følger for å legge til referanser til

– System. Runtime. serialisering

– System. XML. LINQ

– System. ServiceModel. Web

På toppen av koden for About.aspx.cs, vil du se en rekke "bruker" uttalelser. Legg til ved hjelp av system. XML. LINQ til disse, slik at det ser slik ut:

Bruke System
Bruke System. Collections. Generic;
Bruke System. LINQ;
Bruke System. Web;
Bruke System. Web. UI;
Bruke System. Web. UI. WebControls;
Bruke System. XML. LINQ;

Navneområdet Oversetter {
    Offentlig Delvis Klasse About : Page
    {
        Beskyttet Ugyldig Page_Load (Objekt avsender, EventArgs e) {}

        Beskyttet Ugyldig Button1_Click (Objekt avsender, EventArgs e) {}}}

 

Youll ' se til å det Button1_Click koden er tom emballasje. Legg til følgende kode i den. Denne koden vil få din tilgang token for oversetter tjenesten, ved hjelp av Client ID og Client Secret som du opprettet tidligere på.

Streng clientID = "<Your ClientID>";
Streng clientSecret = "<Your Client Secret>";
String strTranslatorAccessURI = 
      "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
String 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. ContentType = "søknad/x-www-form-urlencoded";
webRequest. Method = INNLEGG;
byte[] bytes = system. text. Encoding. ASCII. GetBytes (strRequestDetails);
webRequest. ContentLength = bytes. Lengde
Bruke (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. serialisering. JSON. DataContractJsonSerializer (typeof(AdmAccessToken));

AdmAccessToken-token = (AdmAccessToken) serialisering. ReadObject (webResponse. GetResponseStream ());

Streng headerValue = Bærer + token. access_token;

 

Denne koden danner en POST til datamarkedet tjenesten, passerer ID og hemmelig og få en JSON objekt tilbake. Deretter deserialisere du dette objektet i en AdmAccessToken. Du kan deretter utlede access_token fra dette.

Dette tokenet legges deretter til i en streng med prefikset "bærer" (ikke glem plassen) for å opprette en overskrifts verdi som vil bli sendt til oversetter-tjenesten.

For å deretter ringe oversetter tjenesten med denne headerValue, og bestå brukerens tekst, vil du bruke kode som dette:

Streng txtToTranslate = TextBox1. text;
Streng URI = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text =" + System. Web. HttpUtility. UrlEncode (txtToTranslate) + "& from = en & til = es";
System .net. WebRequest translationWebRequest = system .net. WebRequest. Create (URI);
translationWebRequest. header. Add (Autorisasjons, headerValue);

System .net. WebResponse svar = null;
Response = translationWebRequest. GetResponse ();
System. IO. stream strøm = svar. GetResponseStream ();
System. text. Encoding kode = system. text. Encoding. GetEncoding ("UTF-8");

System. IO. StreamReader translatedStream = Nye System. IO. StreamReader (strøm, kode);
System. XML. XmlDocument xTranslation = Nye System. XML. XmlDocument ();
xTranslation. LoadXml (translatedStream. ReadToEnd ());

Literal1. text = xTranslation. InnerText;

 

 

Tekstboksen ble kalt "TextBox1", slik at teksten brukeren skrev inn, kan ganske enkelt avledes fra den. Etter at en URI til oversetteren HTTP-tjenesten er opprettet, og teksten i seg selv er UrlEncoded og lagt til i URI.

Merk at språket "no" brukes for "from" (dvs. jeg antar du skriver på engelsk), og "es" brukes for "til" (dvs. det vil oversette til spansk). Den fullstendige listen over disse kodene for de støttede språkene er her: http://msdn.microsoft.com/en-us/library/hh456380.aspx

Oversetter tjenesten returnerer XML, slik at koden kaller tjenesten, får svaret som XML og dekoder det til tekst. Deretter lastes resultatet inn i litteral som du opprettet på about. aspx kalt Literal1.

Du kan se den i aksjon her:

clip_image019

Og det er det! Du har nå brukt Microsoft Translator API til å legge til maskin oversettelse i ASP.NET-programmet.

Sammendrag

I denne gjennomgangen har du sett hvordan du bygger et Web program ved hjelp av ASP.NET, og hvordan du kan legge til maskinoversetting i den. Du brukte Microsoft Translator widget for å gi oversettelsen av innholdet på siden din, og du så hvordan du kan programmere Microsoft Translator API ved hjelp av C# for å oversette brukergenerert innhold.