Web design and hosting, database, cloud and social media solutions that deliver business results
  • Бизнес решения
    • Веб-дизайн сайта
      • Безопасность веб-сайта
      • Остров Уайт
    • Бизнес-услуги
      • Microsoft Azure
    • Microsoft Office
    • Социальные медиа
  • Службы баз данных
    • Отчеты
      • Claytabase Server Disk IOPs Calculator
      • SQL-принтер
      • Восстановление кода SQL
    • Проверка телефонного номера в правильном формате Великобритании с SQL Server 2008
  • О нас
    • команда
      • Chester Copperpot
      • Гэвин Клейтон
    • Портфолио
  • Академия
    • Базы данных обучения
      • SQL-Server
      • В SQL Server 2008 план обслуживания
      • Использование SQL Server Pivot-Unpivot
      • Использование дат SQL Server
      • Использование функций SQL Server
    • Изучение веб-дизайна
      • ASP-NET
      • CSS
č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)

Вызов Google Translate из ASP.NET с помощью сообщений

Вызов Google Translate из ASP.NET с использованием POST для получения более длинных документов из вашего кода.

Введение

API Google Translate хорош для выполнения довольно сложных переводов, и, хотя он не идеален, он, по крайней мере, даст вашим читателям базовое представление о том, что вы пытаетесь передать.

Хотя в документе очень хорошо объясняется, что происходит, когда вы используете Java Script, который может переводить около 500 символов, очень мало того, когда вам нужно переводить большие документы.

При использовании POST вы можете увеличить это до 5000 символов, поэтому мы разработали собственный код для отправки почтового запроса в API Google, а затем получите перевод.

Сначала код, для тех, кто просто этого хочет.

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

Введение

И теперь для краткого объяснения. Функция требует четырех входов, это ваш ключ, язык, язык и текст, который вы хотите перевести.

Затем мы объявляем строку возврата, создаем строку URL-адреса запроса, которая быстро разбирается в новом веб-запросе (Req).

Затем мы устанавливаем тип запроса, тип содержимого и, самое главное, добавляем заголовок для переопределения метода get .

Как только это будет сделано, мы отправим данные в виде потока в Google (wriream).

Теперь мы объявляем возвращаемую строку (ReturnStr) для хранения возвращаемого JSON из Google и считываем в нее строку ответов.

Следующий шаг - создание JavaScriptSerializer, этот бит, вероятно, был самым запутанным, так как это самая слабая область моих навыков разработки. То, что делает этот последний раздел, - это вытащить каждую часть текста до тех пор, пока он не попадет в область, которую мы хотим, и устанавливает наш возвращаемый текст как значение, возвращаемое Google. Это может быть не самый сложный код в мире, поэтому, если вы выработаете способ убрать его, то дайте мне знать.

Вы могли бы легко поместить этот код в общий класс и повторно использовать его, однако на нем был только один раздел сайта, поэтому он был встроен в страницу.

В приведенном ниже примере заполняется один текстовый редактор AJAX Toolkit с содержимым из другого. Обратите внимание на двойное декодирование (из редактора и Google) и два текстовых поля, обозначающих язык и из.

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

автор

Helpful?

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

Registered in England and Wales 08985867

RSSLoginLink Политика в отношении файлов cookieКарта сайта

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
Настройки на этом сайте настроены так, что разрешены все файлы cookie. Их можно изменить на странице политики и настроек cookie. Продолжая использовать этот сайт, вы соглашаетесь на использование файлов cookie.
Ousia Logo
Logout
Ousia CMS Loader