Przejdź do głównej zawartości
Translator
Ta strona została automatycznie przetłumaczona przez usługę tłumaczenia maszynowego Microsoft Translator. Dowiedz się więcej

Blog Microsoft Translator

Tworzenie aplikacji sieci Web z tłumaczeniem udostępniane przez Microsoft Translator.

Tworzenie aplikacji sieci Web z tłumaczeniem udostępniane przez Microsoft Translator.

W tym instruktażu dowiesz się, jak utworzyć aplikację sieci Web, która używa interfejsu API Microsoft Translator do tłumaczenia tekstu, który został wprowadzone przez użytkownika. Będziesz budować stronę za pomocą ASP.NET i wolna Visual Studio Express 2012 dla sieci Web. Jeśli masz już instalację programu Visual Studio, nadal będzie można wykonać samouczek, po prostu pomiń krok 1.

Przed rozpoczęciem należy zarejestrować się w usłudze Microsoft Translator API na platformie Azure. Istnieje wiele różnych ofert, w tym wolny jeden, i można zobaczyć, jak zarejestrować się do bezpłatnej usługi, zarejestruj swoją aplikację i uzyskać poświadczenia tutaj:

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

Identyfikator klienta i klucz tajny klienta, które wygenerujesz w tym miejscu będą używane w kroku 4, więc zachowaj ich notatkę.

Krok 1. Uzyskiwanie programu Visual Studio Express 2012 dla sieci Web.

Najlepszym sposobem na rozpoczęcie jest wizyta http://www.asp.net/downloads i wybierz przycisk "Zainstaluj teraz" w sekcji "Pobierz wszystko z jedną prostą instalację".

clip_image001

Spowoduje to uruchomienie Instalatora platformy sieci Web, który zainstaluje program Visual Studio, ASP.NET, MVC i cały szereg innych dodatków, których można używać do tworzenia witryn internetowych.

W kroku 2. Tworzenie aplikacji sieci Web

Uruchom program Visual Studio i z pliku menu, wybierz opcję "nowy projekt". Zobaczysz okno dialogowe zawierające listę różnych projektów, które są dostępne do tworzenia witryn sieci Web. Wybierz "Visual C#" po lewej stronie, a następnie wybierz "ASP.NET Web Forms Application" z listy.

clip_image003

Nadaj aplikacji sieci Web nazwę, taką jak "Translator", i naciśnij przycisk "OK". Program Visual Studio utworzy teraz wszystko, czego potrzebujesz do tworzenia i uruchamiania aplikacji sieci Web. Naciśnij F5, aby skompilować i uruchomić aplikację, a zobaczysz coś takiego:

clip_image005

 

 

Krok 3. Tworzenie interfejsu użytkownika dla translacji tekstu

W tej sekcji dodasz formanty do witryny, które zezwalają użytkownikom końcowym na wpisanie tekstu, naciśnięcie przycisku tłumaczenia, a następnie zobaczenie tłumaczenia wprowadzonego tekstu. Ten typ funkcji jest przydatny do interakcji z klientami, gdy mówisz różne języki, na przykład.

Z Eksploratora rozwiązań, Znajdź stronę "about. aspx". Otwórz go w projektancie, a zobaczysz coś takiego:

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

Dla Twojej wygody, Oto Źródło dla tej strony:

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

<ASP: zawartość Runat= "serwer" IDENTYFIKATOR= "BodyContent" ContentPlaceHolderID= "MainContent">
    <hgroup Klasa= "tytuł">
        <h1><%: Tytuł %>.</h1>
        <h2>Strona opisu aplikacji.</h2>
    </hgroup>

    <Artykułu>
        Wpisz tekst, który chcesz przetłumaczyć:<Br />
        <ASP: pole tekstowe IDENTYFIKATOR= "TextBox1" Runat= "serwer" Wysokość= "25px" Szerokość= "342px"></ASP: pole tekstowe>
        <ASP: przycisk IDENTYFIKATOR= "Button1" Runat= "serwer" Wysokość= "37px" Onclick= "Button1_Click" Tekst= "Przetłumacz" />
        <Br />
        Przetłumaczony tekst jest:<Br />
        <ASP: literał IDENTYFIKATOR= "Literal1" Runat= "serwer"></ASP: literał>
    </Artykułu>

    <Bok>
        <h3>Bok tytuł</h3>
        <P>        
            Użyj tego obszaru, aby podać dodatkowe informacje.
        </P>
        <Ul>
            <Li><A Runat= "serwer" Href="~/">W: strona główna</A></Li>
            <Li><A Runat= "serwer" Href= "~/About.aspx">O</A></Li>
            <Li><A Runat= "serwer" Href= "~/Contact.aspx">Kontakt</A></Li>
        </Ul>
    </Bok>
</ASP: zawartość>

Należy pamiętać, że w projektancie należy dwukrotnie kliknąć na przycisk, aby wygenerować kod "Button1_Click". Piszesz ten kod w następnym kroku.

W kroku 4. Pisanie kodu do tłumaczenia tekstu użytkownika

W poprzedniej sekcji utworzono podstawowy interfejs użytkownika dla translacji tekstu. Umożliwiłoby to użytkownikowi napisanie jakiegoś tekstu i naciśnięcie przycisku. W tej sekcji piszesz kod za tym przyciskiem, który przetłumaczy żądany tekst użytkownika na język hiszpański i renderuje go na stronie.

Najpierw należy dodać nową klasę do rozwiązania. Zadzwoń Właściwość AdmAccessToken i nadaj mu następujący kod:

Za pomocą System
Za pomocą System. Collections. Generic;
Za pomocą System. LINQ;
Za pomocą System. Web;

Obszaru nazw Translator
{
    Publicznego Klasa AdmAccessToken
    {
        Publicznego Ciąg access_token { get; set; }
        Publicznego Ciąg token_type { get; set; }
        Publicznego Ciąg expires_in { get; set; }
        Publicznego Ciąg scope { get; set; }
    }
}

 

Należy zauważyć, że nazwy ciągów 4 powinny być zgodne, co jest tutaj dokładnie, lub otrzymasz błędy w kodzie później.

Następnie w programie Visual Studio w Eksploratorze rozwiązań kliknij prawym przyciskiem myszy folder "References" i wybierz polecenie "Dodaj odwołanie". Użyj następującego okna dialogowego, aby dodać odwołania do

– System. Runtime. Serialization

– System. XML. LINQ

– System. ServiceModel. Web

W górnej części kodu dla About.aspx.cs, zobaczysz kilka instrukcji "Using". Dodaj za pomocą System. XML. LINQ do tych, tak, że wygląda tak:

Za pomocą System
Za pomocą System. Collections. Generic;
Za pomocą System. LINQ;
Za pomocą System. Web;
Za pomocą System. Web. UI;
Za pomocą System. Web. UI. WebControls;
Za pomocą System. XML. LINQ;

Obszaru nazw Translator
{
    Publicznego Częściowe Klasa About : Page
    {
        Chronione Void Page_Load (wObiektu nadawca, EventArgs e)
        {

}

        Chronione Void Button1_Click (Obiektu nadawca, EventArgs e)
        {

}
    }
}

 

Zobaczysz, że Button1_Click kod jest pusty. Dodaj do niego następujący kod. Ten kod otrzyma token dostępu dla usługi translator, przy użyciu identyfikatora klienta i klucz tajny klienta, który został utworzony wcześniej na.

Ciąg clientID = "<Your ClientID>";
Ciąg clientSecret = "<Your Client Secret>";
StrTranslatorAccessURI ciąg = 
      "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
StrRequestDetails ciąg = 
      Ciąg. Formacie"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 = "aplikacja/x-www-form-urlencoded";
webRequest. Method = POST;
Bajtów[] bajty = system. Text. Encoding. ASCII. GetBytes (strRequestDetails);
webRequest. ContentLength = bajtów. Długość
Za pomocą (System.IO.Stream outputStream = webRequest.GetRequestStream())
{
  outputStream.Write(bytes, 0, bytes.Length);
}

System.Net.WebResponse webResponse = webRequest.GetResponse();
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = Nowy 
    System. Runtime. Serialization. JSON. DataContractJsonSerializer (Typeof(AdmAccessToken));

AdmAccessToken token = (AdmAccessToken) serializator. ReadObject (webResponse. GetResponseStream ());

Ciąg headerValue = Okaziciela + token. access_token;

 

Ten kod tworzy POST do usługi rynku danych, przekazując swój identyfikator i klucz tajny i pobieranie obiektu JSON z powrotem. Następnie deserializacji tego obiektu do AdmAccessToken. Następnie można wyprowadzić access_token z tego.

Token ten jest następnie dodawany do ciągu, poprzedzony "Bearer" (nie zapomnij o spacji), aby utworzyć wartość nagłówka, który zostanie wysłany do usługi translatora.

Aby następnie wywołać usługę translator z tym headerValue, i przekazać tekst użytkownika, będziesz używać kodu w ten oto:

Ciąg txtToTranslate = TextBox1. Text;
Ciąg Identyfikator 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. Headers. Add (Autoryzacji, headerValue);

System .NET. WebResponse odpowiedzi = Null;
odpowiedź = translationWebRequest. GetResponse ();
Strumień system. IO. Stream = odpowiedź. GetResponseStream ();
System. Text. Encoding Encode = system. Text. Encoding. GetEncoding ("UTF-8");

System. IO. StreamReader translatedStream = Nowy System. IO. StreamReader (strumień, kodowanie);
System. XML. XmlDocument xTranslation = Nowy System. XML. XmlDocument ();
xTranslation. LoadXml (translatedStream. ReadToEnd ());

Literal1. Text = xTranslation. InnerText;

 

 

Pole tekstowe było nazywane "TextBox1", więc tekst wpisany przez użytkownika może po prostu pochodzić od tego. Po tym identyfikator URI do usługi Translator HTTP jest tworzony, a sam tekst jest UrlEncoded i dodane do identyfikatora URI.

Zauważ, że język "en" jest używany dla "od" (tj., Jestem zakładając, że piszesz w języku angielskim), a "es" jest używany dla "to" (tj. będzie przetłumaczyć na język hiszpański). Pełna lista tych kodów dla obsługiwanych języków jest tutaj: http://msdn.microsoft.com/en-us/library/hh456380.aspx

Usługa translator zwraca XML, więc kod wywołuje usługę, pobiera odpowiedź jako XML, a następnie dekoduje go do tekstu. Następnie ładuje wynik do Literal utworzony na about. aspx o nazwie Literal1.

Możesz zobaczyć to w akcji tutaj:

clip_image019

I to jest to! Teraz użyto interfejsu API Microsoft translator, aby dodać tłumaczenie maszynowe do aplikacji ASP.NET.

Krótki opis

W tym przewodniku przedstawiono sposób tworzenia aplikacji sieci Web przy użyciu ASP.NET i jak dodać do niego tłumaczenia maszynowego. Użyto Microsoft Translator widget do zapewnienia tłumaczenia zawartości strony i zobaczyłem, jak program Microsoft Translator API przy użyciu języka C# w celu tłumaczenia treści generowane przez użytkownika.