Ce petit bout de code prend en paramètres un texte à traduire et un code de traduction (par exemple "fr|en" pour traduire du français à l'anglais.
La fonction envoie une requête http sur google est analyse le flux de retour pour en sortir la traduction.
C'est pas très beau, mais maintenant que babelfish ne propose plus son webservice gratuit, je n'ai rien d'autre
Source / Exemple :
Public Shared Function translate(ByVal psText As String, ByVal psCode As String) As String
Try
Dim voRequest As System.Net.HttpWebRequest = CType(System.Net.HttpWebRequest.Create("http://translate.google.com/translate_t"), System.Net.HttpWebRequest)
Dim vsPostData As String
vsPostData = "text=" & System.Web.HttpUtility.UrlEncode(psText)
vsPostData = vsPostData & "&langpair=" & psCode
vsPostData = vsPostData & "&hl=en"
vsPostData = vsPostData & "&ie=UTF8"
voRequest.ContentLength = vsPostData.Length
voRequest.Method = "POST"
voRequest.ContentType = "application/x-www-form-urlencoded"
Dim voStreamRequest As System.IO.Stream = voRequest.GetRequestStream()
Dim voStreamWriter As System.IO.StreamWriter = New System.IO.StreamWriter(voStreamRequest)
voStreamWriter.Write(vsPostData)
voStreamWriter.Flush()
Dim voResponse As System.Net.HttpWebResponse = CType(voRequest.GetResponse, System.Net.HttpWebResponse)
Dim voStream As System.IO.Stream = voResponse.GetResponseStream
Dim voStreamReader As System.IO.StreamReader = New System.IO.StreamReader(voStream, System.Text.Encoding.ASCII)
Dim vsResult As String
Dim viPosition As Integer
vsResult = voStreamReader.ReadToEnd()
viPosition = vsResult.IndexOf("<textarea name=q ")
If viPosition > 0 Then
vsResult = vsResult.Remove(0, viPosition)
vsResult = vsResult.Remove(0, vsResult.IndexOf(">") + 1)
vsResult = Mid(vsResult, 1, vsResult.IndexOf("<"))
End If
vsResult = System.Web.HttpUtility.HtmlDecode(vsResult)
voStreamReader.Close()
voStream.Close()
voStreamWriter.Close()
voStreamRequest.Close()
voResponse.Close()
Return vsResult
Catch ex As Exception
Return "Erreur lors de la traduction de : " & psText
End Try
End Function
Conclusion :
La liste des codes de traduction se trouve dans la source
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.