Vytvoření webové aplikace s překladem poskytovanou aplikací Microsoft Translator.
Vytvoření webové aplikace s překladem poskytovanou aplikací Microsoft Translator.
V tomto návodu se dozvíte, jak vytvořit webovou aplikaci, která používá rozhraní Microsoft Translator API k překladu textu, který byl uživatelem vstupní. Stránku postavíte pomocí ASP.NET a Free Visual Studio Express 2012 pro web. Pokud již máte instalaci aplikace Visual Studio, budete se stále moci řídit výukovém programu, jednoduše přeskočte krok 1.
Před začátkem je třeba se přihlásit k rozhraní Microsoft Translator API v Azure. Existuje řada různých nabídek, včetně bezplatné, a můžete si prohlédnout, jak se přihlásit k bezplatné službě, zaregistrovat svou aplikaci a získat svá pověření:
http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx
ID klienta a klientský tajný klíč, které zde vygenerujete, budou použity v kroku 4, takže si je poznamenejte.
Krok 1. Získávání sady Visual Studio Express 2012 pro web.
Nejlepší způsob, jak začít, je navštívit http://www.asp.net/downloads a v části získat vše s jednou jednoduchou instalací klepněte na tlačítko nainstalovat nyní.
Spustí se instalační program webové platformy, který nainstaluje sadu Visual Studio, ASP.NET, MVC a celou řadu dalších dobroit, které můžete použít k vytváření webů.
Krok 2. Vytvořit webovou aplikaci
Spusťte aplikaci Visual Studio a v nabídce soubor vyberte možnost Nový projekt. Zobrazí se dialogové okno obsahující seznam různých projektů, které jsou k dispozici pro vytváření webů. Vlevo vyberte ' Visual C# ' a pak vyberte ' ASP.NET webových formulářové aplikace ' ze seznamu.
Pojmenujte webovou aplikaci názvem, například překladatel, a klepněte na tlačítko OK. Visual Studio nyní vytvoří vše potřebné pro sestavení a spuštění webové aplikace. Stisknutím klávesy F5 Sestavte a spusťte aplikaci a uvidíte něco podobného:
Krok 3. Vytváření uživatelského rozhraní pro překlad textu
V této části přidáte na web ovládací prvky, které umožňují koncovým uživatelům psát text, stisknout tlačítko pro přeložení a zobrazit překlad zadaného textu. Tento typ funkcí je užitečný pro interakci se zákazníky, například hovoříte-li různými jazyky.
V Průzkumníku řešení Najděte stránku About. aspx. Otevřete ho v návrháři a uvidíte něco podobného:
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:
Pro vaši pohodlí je zde zdroj pro tuto stránku:
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %> <ASP: obsah Runat= "Server" ID= "BodyContent" ContentPlaceHolderID= "MainContent"> <Skupina HGroup Třída= "název"> <h1><%: Název %>.</h1> <h2>Stránka s popisem aplikace.</h2> </Skupina HGroup> <Článku> Zadejte text, který chcete přeložit:<Br /> <ASP: textové pole ID= "TextBox1" Runat= "Server" Výška= "25px" Šířka= "342px"></ASP: textové pole> <ASP: tlačítko ID= "Button1" Runat= "Server" Výška= "37px" Onclick= "Button1_Click" Text= "Přeložit" /> <Br /> Přeložený text je:<Br /> <ASP: literál ID= "Literal1" Runat= "Server"></ASP: literál> </Článku> <Stranou> <h3>Kromě názvu</h3> <P> Tato oblast slouží k poskytnutí dalších informací. </P> <Ul> <li><A Runat= "Server" Href="~/">Domů</A></li> <li><A Runat= "Server" Href= "~/About.aspx">O</A></li> <li><A Runat= "Server" Href= "~/Contact.aspx">Kontakt</A></li> </Ul> </Stranou> </ASP: obsah>
Všimněte si, že v Návrháři byste měli poklepat na tlačítko pro vygenerování kódu "Button1_Click". Tento kód napíšete v dalším kroku.
Krok 4. Psaní kódu pro přeložení textu uživatele
V předchozím oddílu jste vytvořili základní uživatelské rozhraní pro překlad textu. Umožňuje uživateli napsat nějaký text a stisknout tlačítko. V tomto oddíle napíšete kód za tímto tlačítkem, který přeloží požadovaný text uživatele na španělštinu a vykresluje jej na stránce.
Nejprve je třeba do řešení přidat novou třídu. Říkejte tomu Funkce AdmAccessToken a dejte mu následující kód:
Pomocí Systému Pomocí System. Collections. Generic; Pomocí System. Linq; Pomocí System. Web; Obor názvů překladatel { Veřejné Třída AdmAccessToken { Veřejné Řetězec access_token { get; set; } Veřejné Řetězec token_type { get; set; } Veřejné Řetězec expires_in { get; set; } Veřejné Řetězec scope { get; set; } } }
Všimněte si, že názvy 4 řetězců by se měly shodovat s tím, co je přesně zde, nebo se v kódu později objeví chyby.
Dále v aplikaci Visual Studio v Průzkumníku řešení klikněte pravým tlačítkem myši na složku ' reference ' a vyberte ' Přidat odkaz '. Následující dialogové okno slouží k přidání odkazů na
– System. Runtime. Serialization
– System. XML. Linq
– System. ServiceModel. Web
V horní části kódu pro About.aspx.cs se zobrazí množství příkazů using. Přidejte pomocí souboru System. XML. LINQ k těmto, aby vypadala takto:
Pomocí Systému Pomocí System. Collections. Generic; Pomocí System. Linq; Pomocí System. Web; Pomocí System. Web. UI; Pomocí System. Web. UI. WebControls; Pomocí System. XML. Linq; Obor názvů překladatel { Veřejné Částečné Třída About : Page { Chráněné Void Page_Load (Objekt odesílatel, EventArgs e) { } Chráněné Void Button1_Click (Objekt odesílatel, EventArgs e) { } } }
Uvidíte, že kód Button1_Click je prázdný. Přidejte do něj následující kód. Tento kód bude mít přístupový token pro službu převaděče pomocí ID klienta a klientského tajného klíče, který jste vytvořili dříve.
Řetězec clientID = "<Your ClientID>"; Řetězec clientSecret = "<Your Client Secret>"; Řetězec strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13"; StrRequestDetails řetězce = Řetězec. Formát"grant_type=client_credentials&client_id={0}&client_secret={1} &scope=http://api.microsofttranslator.com", Httpunosti. UrlEncode (clientID), Httpuzit. UrlEncode (clientSecret)); System .NET. WebRequest webRequest = System .NET. WebRequest. Create (strTranslatorAccessURI); webRequest. ContentType = "aplikace/x-www-form-urlencoded"; webRequest. Method = ZAÚČTOVÁNÍ; Bajt[] bajty = System. text. Encoding. ASCII. GetBytes (strRequestDetails); webRequest. ContentLength = bajty. Délka 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 = Nwe System. Runtime. Serialization. JSON. DataContractJsonSerializer (Typeof(AdmAccessToken)); Serializátor AdmAccessToken token = (AdmAccessToken) ReadObject (webResponse. GetResponseStream ()); Řetězec Hlavervalue = Držitele + token. access_token;
Tento kód vytváří službu POST na datovém trhu, předává váš identifikátor a tajný kód a vrátí zpět objekt JSON. Pak tento objekt deserializujete do objektu AdmAccessToken. Pak z toho můžete odvodit access_token.
Tento token je pak přidán do řetězce, s předponou "nosiče" (nezapomeňte na místo), abyste vytvořili hodnotu hlavičky, která bude odeslána službě převaděče.
Chcete-li poté volat překladače s touto hodnotou headerValue a předat uživateli text, použijte následující kód:
Řetězec txtToTranslate = TextBox1. text; Řetězec URI = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text =" + System. Web. Httpunosti. UrlEncode (txtToTranslate) + "& od = en & do = ES"; System .NET. WebRequest translationWebRequest = systém .NET. WebRequest. Create (URI); translationWebRequest. Headers. Add (Povolení, headerValue); Odpověď System .NET. WebResponse = Null; odezva = translationWebRequest. GetResponse (); Datový proud System. IO. Stream = Response. GetResponseStream (); System. text. Encoding encode = System. text. Encoding. Getenkódováním ("UTF-8"); Systém. IO. StreamReader translatedStream = Nwe System. IO. StreamReader (datový proud, kódování); XTranslation systému. XML. XmlDocument = Nwe System. XML. XmlDocument (); xTranslation. LoadXml (Transatedstream. ReadToEnd ()); Literal1. text = xTranslation. InnerText;
Textové pole se nazývali ' TextBox1 ', takže text, který uživatel zadal, může být jednoduše odvozen od něj. Poté je vytvořen identifikátor URI pro službu překladače HTTP a samotný text je UrlEncoded a přidán do identifikátoru URI.
Všimněte si, že jazyk ' en ' se používá pro ' od ' (tj. Předpokládám, že píšete anglicky) a ' ES ' se používá pro ' do ' (tj. bude přeložena do španělštiny). Úplný seznam těchto kódů pro podporované jazyky je zde: http://msdn.microsoft.com/en-us/library/hh456380.aspx
Služba převaděče vrátí kód XML, a proto je služba volána, získá odpověď jako soubor XML a potom ji dekóduje na text. Poté načte výsledek do literálu, který jste vytvořili na About. aspx s názvem Literal1.
Můžete ji vidět v akci:
A to je ono! Nyní jste použili rozhraní Microsoft Translator API k přidání strojového překladu do vaší ASP.NET aplikace.
Shrnutí
V tomto návodu jste viděli, jak sestavit webovou aplikaci pomocí ASP.NET a jak do něj přidat strojový překlad. Pomocí widgetu Microsoft Translator jste poskytli překlad obsahu stránky a viděli jste, jak programovat rozhraní Microsoft Translator API s použitím jazyka C#, aby bylo možné přeložit obsah generovaný uživatelem.