Перейти к основному контенту
Translator
Эта страница была автоматически переведена службой машинного перевода Microsoft Translator. Подробнее

Блог переводчика Майкрософт

Создание веб-приложения с переводом, предоставляемым переводчиком Microsoft.

Создание веб-приложения с переводом, предоставляемым переводчиком Microsoft.

В этом поШаговом руководстве вы узнаете, как создать веб-приложение, использующее API Microsoft Translator для перевода текста, введенного пользователем. Вы будете строить страницу с помощью ASP.NET и бесплатный Visual Studio Express 2012 для Web. Если у вас уже есть установка Visual Studio, вы все равно сможете следовать учебник, просто пропустить шаг 1.

Перед началом необходимо зарегистрироваться в API-ИНТЕРФЕЙСе Microsoft Translator в Azure. Есть несколько различных предложений, в том числе бесплатно, и вы можете увидеть, как зарегистрироваться для бесплатного обслуживания, зарегистрировать свое приложение и получить учетные данные здесь:

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

Идентификатор клиента и секрет клиента, которые вы создаете здесь, будут использоваться в шаге 4, так что имейте заметку о них.

Шаг 1. Получение Visual Studio Express 2012 для веб-узла.

Лучший способ начать это посетить http://www.asp.net/downloads и выберите кнопку "установить сейчас" в разделе "получить все с помощью одной простой установки".

clip_image001

Это запустит установщик веб-платформы, который установит Visual Studio, ASP.NET, MVC и целый ряд других полезностей, которые можно использовать для создания веб-сайтов.

Шаг 2. Создание веб-приложения

Запустите Visual Studio и в меню Файл выберите команду "создать проект". Появится диалоговое окно, содержащее список различных проектов, доступных для создания веб-сайтов. Выберите "Visual C#" слева, а затем выберите "ASP.NET Web Forms Application" из списка.

clip_image003

ПриСвойте веб-приложению имя, например «транслятор», и нажмите «OK». Теперь Visual Studio создаст все необходимое для создания и запуска веб-приложения. Нажмите клавишу F5, чтобы построить и запустить приложение, и вы увидите нечто подобное:

clip_image005

 

 

Шаг 3. Создание ПОЛЬЗОВАТЕЛЬСКОГО интерфейса для перевода текста

В этом разделе вы добавите на сайт элементы управления, которые позволят вашим конечным пользователям вводить некоторый текст, нажать кнопку перевода, а затем увидеть перевод введенного текста. Этот тип функциональности полезен для взаимодействия с вашими клиентами, когда вы говорите на разных языках, например.

В обозревателе решений найдите страницу "About. aspx". Откройте его в конструкторе, и вы увидите что-то вроде этого:

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

Для вашего удобства, вот источник для этой страницы:

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

<ASP: содержимое runat= "сервер" ID= "Бодиконтент" Контентплацехолдерид= "MainContent">
    <hgroup Класса= "название">
        <h1><%: Название %>.</h1>
        <h2>Страница описания приложения.</h2>
    </hgroup>

    <Статьи>
        Введите текст, который вы хотите перевести:<Br />
        <ASP: текстовое поле ID= "TextBox1" runat= "сервер" Высота= "25px" Ширина= "342px"></ASP: текстовое поле>
        <Кнопка ASP: ID= "Button1" runat= "сервер" Высота= "37px" Onclick= "Button1_Click" Текст= "Перевести" />
        <Br />
        Переведенный текст:<Br />
        <ASP: литерал ID= "Literal1" runat= "сервер"></ASP: литерал>
    </Статьи>

    <Сторону>
        <h3>В сторону название</h3>
        <P>        
            Используйте эту область для предоставления дополнительной информации.
        </P>
        <Ул>
            <Литий><в runat= "сервер" Href="~/">Дома</в></Литий>
            <Литий><в runat= "сервер" Href= "~/Абаут.аспкс">О</в></Литий>
            <Литий><в runat= "сервер" Href= "~/Контакт.аспкс">Контакт</в></Литий>
        </Ул>
    </Сторону>
</ASP: содержимое>

Обратите внимание, что в конструкторе необходимо дважды щелкнуть на кнопке, чтобы сгенерировать код "Button1_Click". Этот код будет написан на следующем шаге.

Шаг 4. Написание кода для перевода текста пользователя

В предыдущем разделе был создан базовый пользовательский интерфейс для преобразования текста. Это позволило бы пользователю написать некоторый текст, и нажать кнопку. В этом разделе вы напишете код за этой кнопкой, который будет переводить нужный текст пользователя на Испанский, и визуализировать его на странице.

Во-первых, необходимо добавить в решение новый класс. Звоните Адмакцесстокен и присвойте ему следующий код:

Используя Системы
Используя System. Collections. Generic;
Используя System. LINQ;
Используя Система. Web;

Пространства имен Translator
{
    Общественного Класса AdmAccessToken
    {
        Общественного Строка access_token { get; set; }
        Общественного Строка token_type { get; set; }
        Общественного Строка expires_in { get; set; }
        Общественного Строка scope { get; set; }
    }
}

 

Обратите внимание, что имена 4 строк должны соответствовать тому, что здесь точно, или вы будете получать ошибки в коде позже.

Затем в Visual Studio в обозревателе решений щелкните правой кнопкой мыши папку "ссылки" и выберите "добавить ссылку". Используйте следующее диалоговое окно, чтобы добавить ссылки на

– Система. Runtime. Сериализация

– System. XML. LINQ

– Система. ServiceModel. Web

В верхней части кода для About.aspx.cs, вы увидите несколько операторов ' using '. Добавьте с помощью System. XML. LINQ к этим, так что он выглядит следующим образом:

Используя Системы
Используя System. Collections. Generic;
Используя System. LINQ;
Используя Система. Web;
Используя System. Web. UI;
Используя Система. Web. UI. веб-контроль;
Используя System. XML. LINQ;

Пространства имен Translator
{
    Общественного Частичное Класса About : Page
    {
        Защищены Void Паже_лоад (Объекта отправитель, EventArgs e)
        {

}

        Защищены Void Button1_Click (Объекта отправитель, EventArgs e)
        {

}
    }
}

 

Вы увидите, что код Button1_Click пуст. Добавьте в него следующий код. Этот код получит маркер доступа для службы переводчика, используя идентификатор клиента и секрет клиента, созданный ранее.

Строка clientID = "<Your ClientID>";
Строка clientSecret = "<Your Client Secret>";
Строка Стртранслаторакцессури = 
      "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
Строка Стррекуестдетаилс = 
      Строка. Формат"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 (Стртранслаторакцессури);
WebRequest. "приложение/x-www-Form-UrlEncoded";
WebRequest. Method = ПОСТ;
Байт[] bytes = System. Text. Encoding. ASCII. байт (Стррекуестдетаилс);
WebRequest. ContentLength = байт. Длина
Используя (System.IO.Stream outputStream = webRequest.GetRequestStream())
{
  outputStream.Write(bytes, 0, bytes.Length);
}

System.Net.WebResponse webResponse = webRequest.GetResponse();
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = Новые функции 
    System. Runtime. сериализации. JSON. DataContractJsonSerializer (Typeof(Адмакцесстокен));

Адмакцесстокен токен = (Адмакцесстокен) сериализатор. ReadObject (GetResponseStream ());

Строка headerValue = Предъявителя + токен. акцесс_токен;

 

Этот код формирует POST к сервису рынка данных, передает ваш ID и секрет и получает объект JSON обратно. Затем этот объект десериализуется в объект Адмакцесстокен. Затем можно вывести акцесс_токен из этого.

Затем этот токен добавляется в строку с префиксом "предъявителя" (не забывайте о пробеле), чтобы создать значение заголовка, которое будет отправлено службе переводчика.

Чтобы затем вызвать службу переводчика с этим headerValue и передать текст пользователя, вы будете использовать код, как это:

Строка Тксттотранслате = TextBox1. Text;
Строка URI = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text =" + Система. Web. HttpUtility. UrlEncode (Тксттотранслате) + "& from = EN & to = ES";
System .NET. WebRequest Транслатионвебрекуест = System .NET. WebRequest. Create (URI);
Транслатионвебрекуест. Headers. Add (Авторизации, headerValue);

System .NET. ответ ответной реакции = Null;
Response = Транслатионвебрекуест. ответ ();
Система. IO. Stream поток = ответ. GetResponseStream ();
Кодирование системы. Text. кодирования = System. Text. Encoding."UTF-8");

System. IO. StreamReader Транслатедстреам = Новые функции System. IO. StreamReader (поток, кодирование);
System. XML. XmlDocument Кстранслатион = Новые функции System. XML. XmlDocument ();
Кстранслатион. LoadXml (Транслатедстреам. ReadToEnd ());

Literal1. Text = Кстранслатион. InnerText;

 

 

Текстовое поле было вызвано ' TextBox1 ', так что текст, введенный пользователем, может быть просто выведен из этого. После этого создается URI для транслятора HTTP-службы, а сам текст — UrlEncoded и добавляется в URI.

Обратите внимание, что язык ' en ' используется для ' from ' (то есть, я предполагаю, что вы печатаете на английском языке), и ' ES ' используется для ' to ' (т.е. он будет переводить на Испанский язык). Полный список этих кодов для поддерживаемых языков находится здесь: http://msdn.microsoft.com/en-us/library/hh456380.aspx

Служба переводчика возвращает XML, поэтому код вызывает службу, получает ответ как XML, а затем расшифрует его в текст. Затем он загружает результат в литерал, созданный на about. aspx с именем Literal1.

Вы можете увидеть его в действии здесь:

clip_image019

И вот оно! Теперь вы использовали API Microsoft Translator для добавления машинного перевода в приложение ASP.NET.

Сводка

В этом пошаговом руководстве вы увидели, как создать веб-приложение с помощью ASP.NET и как добавить в него машинный перевод. Вы использовали виджет Microsoft Translator, чтобы обеспечить перевод содержимого страницы, и вы увидели, как программировать API Microsoft Translator с помощью C# для перевода созданного пользователями контента.