TRADUCTEUR GOOGLE : INTERFACE WINFORM POUR LE SERVICE DE TRADUCTION DE GOOGLE

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 - 13 avril 2009 à 12:57
blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 - 30 oct. 2012 à 14:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49799-traducteur-google-interface-winform-pour-le-service-de-traduction-de-google

blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 1
30 oct. 2012 à 14:20
Après ouverture depuis VB 2010 Express et test Français-Anglais-Espagnol : fonctionne très bien dans les deux sens. Merci !
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
11 oct. 2010 à 09:15
Comment désactiver la pénible boîte de dialogue du "Débogage juste-à-temps" :
IE : Outils : Options Internet... : Avancé : Navigation : Cocher :
"Désactiver le débogage des scripts (autres applications)"
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
18 mai 2010 à 21:30
Merci, esperons que le site de Google ne fermera pas !
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
27 mars 2010 à 09:34
Nouvelle version : j'ai corrigé un bug : il fallait bien attendre le vidage du cache du navigateur via wbNav.Navigate("") avec l'événement wbNav.DocumentCompleted : il conservait la précédente traduction, qui pouvait être inversée éventuellement !
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
19 avril 2009 à 13:03
J'ai testé l'API Ajax et en fait la limite n'est pas 5000 mais toujours 1000 caractères, du coup c'est moins intéressant ! (il y a plus d'erreurs et moins d'infos. potentielles par rapport au mode navigateur)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
16 avril 2009 à 16:33
On obtient depuis aujourd'hui (pleins de màj WinUpdate) une avalanche de bugs ! Il s'agit en fait d'une erreur de script à la fin de la navigation : pour corriger cela, il faut mettre webbrowser.ScriptErrorsSuppressed = true
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
13 avril 2009 à 13:50
5000 caractères c'est mieux que 1000, c'est sûr !

Le code provient de :
www.codeproject.com/KB/aspnet/Translate_Your_Website.aspx
et il est récent, je vais voir cela, merci.
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
13 avril 2009 à 12:57
essaye ceci :)

Private Function Translate(ByVal stringToTranslate As String, ByVal fromLanguage As String, ByVal toLanguage As String) As String
' make sure that the passed string is not empty or null
If (Not String.IsNullOrEmpty(stringToTranslate)) Then
' per google's terms of use, we can only translate
' a string of up to 5000 characters long
If stringToTranslate.Length <= 5000 Then
Const bufSizeMax As Integer = 65536
Const bufSizeMin As Integer = 8192

Try
' by default format? is text. so we don't need to send a format? key
Dim requestUri As String = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" & stringToTranslate & "&langpair=" & fromLanguage & "%7C" & toLanguage

' execute the request and get the response stream
Dim request As HttpWebRequest = CType(WebRequest.Create(requestUri), HttpWebRequest)
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Dim responseStream As Stream = response.GetResponseStream()

' get the length of the content returned by the request
Dim length As Integer = CInt(Fix(response.ContentLength))
Dim bufSize As Integer = bufSizeMin

If length > bufSize Then
If length > bufSizeMax Then
bufSize = bufSizeMax
Else
bufSize = length
End If
End If

' allocate buffer and StringBuilder for reading response
Dim buf(bufSize - 1) As Byte
Dim sb As New StringBuilder(bufSize)

' read the whole response
length = responseStream.Read(buf, 0, buf.Length)
Do While length <> 0
sb.Append(Encoding.UTF8.GetString(buf, 0, length))
length = responseStream.Read(buf, 0, buf.Length)
Loop

' the format of the response is like this
' {"responseData": {"translatedText":"¿Cómo estás?"}, "responseDetails": null, "responseStatus": 200}
' so now let's clean up the reponse by manipulating the string
Dim translatedText As String = sb.Remove(0, 36).ToString()
translatedText = translatedText.Substring(0, translatedText.IndexOf("""},"))

Return translatedText
Catch
Return "Cannot get the translation. Please try again later."
End Try
Else
Return "String to translate must be less than 5000 characters long."
End If
Else
Return "String to translate is empty."
End If
End Function
Rejoignez-nous