1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Option Explicit
'it=italien
'fr=francais
'en=anglais
'de= allemand
'es=espagnol
'etc...
Sub test()
'mode valeur a traduire
MsgBox Translate("toto mange des pommes au miel ", "FR", "de")
'formule: "=Translate(cellule; "fr"; "DE")
End Sub
'
'
Sub test2()
'mode url injecté
MsgBox Translate(urlI:="https://translate.google.pl/m?&sl=fr&tl=en&ie=UTF-8&prev=_m&q=" & "toto mange des bannanes comme un singe")
End Sub
'
'
Public Function Translate(Optional texte As String, Optional From As String = "en", Optional ToLang As String = "fr", Optional urlI As String)
Dim RQ As Object, URL As String, code As String, elem As Object, x As Long
Set RQ = CreateObject("microsoft.xmlhttp") '"MSXML2.ServerXMLHTTP"
If urlI <> "" Then
URL = urlI
Else
URL = "https://translate.google.pl/m?&sl=" & From & "&tl=" & ToLang & "&ie=UTF-8&prev=_m&q=" & texte
End If
RQ.Open "POST", URL, False
RQ.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
RQ.send
With CreateObject("htmlfile")
.body.innerhtml = RQ.responsetext
Debug.Print Replace(RQ.responsetext, "<>", ">" & vbCrLf & "<")
For Each elem In .ALL
If elem.Tagname = "DIV" And elem.classname = "t0" Then Translate = elem.innerhtml: Exit For
Next
End With
End Function |
Partager