Web design and hosting, database, cloud and social media solutions that deliver business results
  • Des solutions d'affaires
    • Automatisation des processus robotiques
    • Logiciel
    • Services de base
      • Intégration de données
      • Power BI
      • Services d'entrepôt de données
      • Tools
    • Conception de site Web
      • Localisation et traduction Web
      • Sécurité du site Web
    • Services Cloud
      • Microsoft Azure
    • Média Social
    • Microsoft Office
  • Académie
    • Conception de bases de données d'apprentissage
      • Utilisation de données SQL Server
      • Obtenir la requête ouverte
      • Plan de maintenance SQL Server 2008
      • Utilisation des dates SQL Server
      • Utilisation de SQL Server Pivot-Unpivot
      • Utiliser SQL Server Fonctions
    • Apprentissage de la conception Web
      • CSS
      • ASP NET
    • Cloud d'apprentissage et services informatiques
      • Demande SSL et génération de fichier PFX dans OpenSSL étapes simples
  • Sur
    • Carrières
    • Équipe
      • Ali Al Amine
      • Chester Copperpot
      • Gavin Clayton
      • Suneel Kumar
    • Portefeuille
č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)

Appeler Google Translate à partir d'ASP.NET à l'aide de Post

Appeler Google Translate à partir d'ASP.NET en utilisant POST pour des documents plus longs à partir de votre code derrière.

introduction

L' API de Google Translate est bonne pour effectuer des traductions assez complexes, et même si elle n'est pas parfaite, elle fournira au moins à vos lecteurs une compréhension de base de ce que vous essayez de transmettre.

Bien que le document soit très utile pour expliquer ce qui se passe lorsque vous utilisez Java Script qui peut traduire environ 500 caractères, il y a très peu de temps lorsque vous devez traduire des documents plus importants.

Lorsque vous utilisez POST, vous pouvez augmenter cette valeur à 5000 caractères, donc nous avons développé notre propre code pour envoyer une demande de publication à l'API Google et ensuite recevoir la traduction.

D'abord le code, pour ceux qui veulent juste cela.

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

introduction

Et maintenant, pour une brève explication. La fonction nécessite quatre entrées, c'est votre clé, votre langue, votre langue et le texte que vous souhaitez traduire.

Nous déclarons ensuite une chaîne de retour, créons une chaîne d'URL de requête qui est rapidement analysée dans une nouvelle requête Web (Req).

Ensuite, nous définissons le type de demande, le type de contenu et, surtout, ajoutons un en-tête pour remplacer la méthode get .

Une fois que cela est fait, nous envoyons ensuite les données en tant que flux vers Google (Wriream).

Maintenant, nous déclarons une chaîne de retour (ReturnStr) pour retenir le JSON retourné de Google et lisez la chaîne de réponse dans celui-ci.

La prochaine étape consiste à créer un JavaScriptSerializer, ce bit était probablement le plus déroutant, car c'est le domaine le plus faible de mes compétences de développement. Ce que cette dernière section fait, c'est extraire chaque section du texte jusqu'à ce qu'il atteigne la zone que nous voulons, et définit notre texte de retour comme la valeur renvoyée par Google. Ce n'est peut-être pas le code le plus élaboré au monde, alors, si vous travaillez un moyen de le ranger, faites-le moi savoir.

Vous pourriez facilement mettre ce code dans une classe partagée et le réutiliser, mais il n'y avait qu'une section du site sur laquelle nous avions besoin, donc c'était intégré à la page.

L'exemple ci-dessous génère un éditeur de texte AJAX Toolkit avec le contenu d'un autre. Notez le décodage double (depuis l'éditeur et Google) et dispose de deux zones de texte indiquant la langue à destination et en provenance.

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

Auteur

Helpful?

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

Registered in England and Wales 08985867

RSSLoginLink Politique de cookieSitemap

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
Les paramètres de ce site sont configurés pour autoriser tous les cookies. Ceux-ci peuvent être modifiés sur notre page cookies. En continuant à utiliser ce site, vous acceptez l'utilisation de cookies.
Ousia Logo
Logout
Ousia CMS Loader