TRADUCTEUR GOOGLE : INTERFACE WINFORM POUR LE SERVICE DE TRADUCTION DE GOOGLE
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 2014
-
13 avril 2009 à 12:57
blq
Messages postés97Date d'inscriptionvendredi 22 octobre 1999StatutMembreDernière intervention13 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.
blq
Messages postés97Date d'inscriptionvendredi 22 octobre 1999StatutMembreDernière intervention13 juin 20161 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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és319Date d'inscriptionjeudi 1 avril 2010StatutMembreDernière intervention16 mars 20111 18 mai 2010 à 21:30
Merci, esperons que le site de Google ne fermera pas !
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 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
' 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
30 oct. 2012 à 14:20
11 oct. 2010 à 09:15
IE : Outils : Options Internet... : Avancé : Navigation : Cocher :
"Désactiver le débogage des scripts (autres applications)"
18 mai 2010 à 21:30
27 mars 2010 à 09:34
19 avril 2009 à 13:03
16 avril 2009 à 16:33
13 avril 2009 à 13:50
Le code provient de :
www.codeproject.com/KB/aspnet/Translate_Your_Website.aspx
et il est récent, je vais voir cela, merci.
13 avril 2009 à 12:57
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