Web design and hosting, database, cloud and social media solutions that deliver business results
  • Obchodní řešení
    • Databázové služby
      • Integrace dat
    • Robotická automatizace procesů
    • Návrh webových stránek
      • Zabezpečení webových stránek
    • Obchodní služby
      • Microsoft Azure
    • Microsoft Office
    • Sociální Média
  • Akademie
    • Výuka návrhu databáze
      • Zprávy
      • Pomocí serveru SQL Pivot-Unpivot
      • Použití dat serveru SQL Server
      • Používání funkcí dat serveru SQL Server
      • Používání funkcí serveru SQL Server
      • SQL Server 2008 plán údržby
    • Výuka designu webových stránek
      • CSS
      • ASP NET
  • O nás
    • Portfolio
    • tým
      • Gavin Clayton
      • Chester Copperpot
      • Suneel Kumar
čeština (CS)Deutsch (DE)English (EN-US)English (EN-GB)Español (ES)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Volání Google Translate From ASP.NET pomocí Post

Volání služby Google Translate from ASP.NET pomocí POST pro delší dokumenty z vašeho kódu.

Úvod

Aplikace Google Translate API je dobrá pro provádění poměrně složitých překladů, a přestože to není dokonalé, přinejmenším poskytne čtenářům základní přehled o tom, co se snažíte vyslovit.

Zatímco dokument je velmi dobrý v vysvětlení toho, co se stane, když používáte Java Script, který může přeložit asi 500 znaků, je velmi málo, když potřebujete překládat větší dokumenty.

Při použití POST můžete toto číslo zvýšit na 5000 znaků, proto jsme vyvinuli vlastní kód, který nám pošle požadavek na zasílání pošty do rozhraní Google API a poté obdrží překlad.

Nejprve kód, pro ty, kteří to prostě chtějí.

VB

Protected Function GetTranslation(ByVal key As String, ByVal source As String, ByVal target As String, ByVal Text As String) As String
  Dim TranslatedString As String = ""
  Text = "q=" + Text
  Dim TranslateRequest As New Uri(String.Format("https://www.googleapis.com/language/translate/v2?key={0}&source={1}&target={2}&format=html", key, source, target))
  Dim Req As WebRequest = WebRequest.Create(TranslateRequest)
  Req.Method = "POST"
  Req.Headers.Add("X-https-Method-Override", "GET")
  Req.ContentType = "application/x-www-form-urlencoded"
  Using wriream As Stream = Req.GetRequestStream()
  Dim encoding As New UTF8Encoding()
  Dim bytes As Byte() = encoding.GetBytes(Text)
  wriream.Write(bytes, 0, bytes.Length)
  End Using
  Dim ReturnStr As String
  Using sr = New StreamReader(Req.GetResponse.GetResponseStream)
  ReturnStr = sr.ReadToEnd()
  End Using
  Dim Reader As New JavaScriptSerializer
  Dim TranslateJSON As Dictionary(Of String, Object) = Reader.DeserializeObject(ReturnStr)
  Dim TranslateData As Dictionary(Of String, Object)
  If TranslateJSON.ContainsKey("data") Then
  TranslateData = TranslateJSON("data")
  If TranslateData.ContainsKey("translations") Then
  For Each pair In TranslateData.Item("translations")(0)
  TranslatedString = pair.Value.ToString()
  Next
   End If
  End If
  Return TranslatedString
End Function

Úvod

A teď pro stručné vysvětlení. Funkce vyžaduje čtyři vstupy, to je klíč, jazyk, jazyk a text, který chcete přeložit.

Poté deklarujeme návratový řetězec, vytvoříme požadovaný řetězec URL, který je rychle analyzován do nové webové žádosti (Req).

Poté nastavíme typ požadavku, typ obsahu a nejdůležitější je přidat záhlaví, aby se předešlo metodě get .

Jakmile to bude hotovo, pošleme údaje jako proud do Googlu (wriream).

Nyní deklarujeme návratový řetězec (ReturnStr), který zadá vrácenou JSON od Googlu a čte do něj řetězec odpovědí.

Dalším krokem je vytvoření JavaScriptSerializeru, tento bit byl pravděpodobně nejvíce matoucí, neboť toto je nejslabší oblast svých rozvojových dovedností. Co dělá tato poslední část, je vytáhnout každou část textu, dokud se nedostane do oblasti, kterou chceme, a nastaví náš návratový text jako hodnotu vrácenou společností Google. Možná nejde o nejpodrobnější kód na světě, takže pokud vyřešíte způsob, jak to vyřídit, dejte mi vědět.

Tento kód můžete docela snadno umístit do sdílené třídy a znovu ji použít, nicméně tam byla jen jedna část webu, o které jsme to potřebovali, a tak byl zabudován do stránky.

Níže uvedený příklad obsahuje jeden textový editor AJAX Toolkit s obsahem z jiného. Vezměte prosím na vědomí dvojité dekódování (z editoru a Google) a má dvě textová pole označující jazyk do az.

VB

Protected Sub TranslateDoc_Click(sender As Object, e As EventArgs) Handles TranslateDoc.Click
  Dim key As String = "Your Key"
  Dim source As String = LanguageBase.SelectedItem.Text.ToString
  Dim target As String = LanguageTrans.SelectedItem.Text.ToString
  Dim PageText As String = httpsUtility.HtmlDecode(ContentText.Content)
  Try
  ContentTextTran.Content = httpsUtility.HtmlDecode(GetTranslation(key, source, target, PageText))
  Str.Text = "Translated"
  Catch
  Str.Text = key + "," + source + "," + target + ""
  End Try
End
 Sub

Autor

Helpful?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Cookie Policymapa stránek

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
Nastavení na této stránce jsou nastaveny povolit všechny soubory cookie. Ty mohou být změněny na našich zásad a nastavení stránky cookie. Nadále používat tento web souhlasíte s použitím cookies.
Ousia Logo
Logout
Ousia CMS Loader