Fonction pour traduire des texte via DeepL
Le
Emile63

Bonjour à tous,
J'ai trouvé sur Youtube la fonction de traduction (via Google translat=
e) mise à disposition par Dinesh Kumar Takyar, et qui est ce que je re=
cherchais. ;-)
Toutefois si c'était possible je souhaiterais traduire avec DeepL (qui=
est plus précis dans le jargon de ma société) et vous deman=
de s'il est possible de modifier cette fonction pour qu'elle fonctionne ave=
c ce traducteur.
Je vous remercie d'avance pour votre aide.
Emile
Public Function Translate(strInput As String, strFromSourceLanguage As Stri=
ng, strToTargetLanguage As String) As String
Dim strURL As String
Dim objHTTP As Object
Dim objHTML As Object
Dim objDivs As Object, objDiv As Object
Dim strTranslated As String
' send query to web page via Google:
strURL = "https://translate.google.com/m?hl=" & strFromSourceLangua=
ge & _
"&sl=" & strFromSourceLanguage & _
"&tl=" & strToTargetLanguage & _
"&ie=UTF-8&prev=_m&q=" & strInput
'
' La même chose via Deepl
'https://www.deepl.com/translator#fr/en/ceci%20est%20un%20test
'
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") 'late binding
objHTTP.Open "GET", strURL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6=
.0; Windows NT 5.0)"
objHTTP.send ""
' create an html document
Set objHTML = CreateObject("htmlfile")
With objHTML
.Open
.Write objHTTP.responsetext
.Close
End With
'Range("H1") = objHTTP.responsetext
Set objDivs = objHTML.getElementsByTagName("div")
For Each objDiv In objDivs
If objDiv.className = "t0" Then
strTranslated = objDiv.innerText
Translate = strTranslated
End If
Next objDiv
Set objHTML = Nothing
Set objHTTP = Nothing
End Function
J'ai trouvé sur Youtube la fonction de traduction (via Google translat=
e) mise à disposition par Dinesh Kumar Takyar, et qui est ce que je re=
cherchais. ;-)
Toutefois si c'était possible je souhaiterais traduire avec DeepL (qui=
est plus précis dans le jargon de ma société) et vous deman=
de s'il est possible de modifier cette fonction pour qu'elle fonctionne ave=
c ce traducteur.
Je vous remercie d'avance pour votre aide.
Emile
Public Function Translate(strInput As String, strFromSourceLanguage As Stri=
ng, strToTargetLanguage As String) As String
Dim strURL As String
Dim objHTTP As Object
Dim objHTML As Object
Dim objDivs As Object, objDiv As Object
Dim strTranslated As String
' send query to web page via Google:
strURL = "https://translate.google.com/m?hl=" & strFromSourceLangua=
ge & _
"&sl=" & strFromSourceLanguage & _
"&tl=" & strToTargetLanguage & _
"&ie=UTF-8&prev=_m&q=" & strInput
'
' La même chose via Deepl
'https://www.deepl.com/translator#fr/en/ceci%20est%20un%20test
'
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") 'late binding
objHTTP.Open "GET", strURL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6=
.0; Windows NT 5.0)"
objHTTP.send ""
' create an html document
Set objHTML = CreateObject("htmlfile")
With objHTML
.Open
.Write objHTTP.responsetext
.Close
End With
'Range("H1") = objHTTP.responsetext
Set objDivs = objHTML.getElementsByTagName("div")
For Each objDiv In objDivs
If objDiv.className = "t0" Then
strTranslated = objDiv.innerText
Translate = strTranslated
End If
Next objDiv
Set objHTML = Nothing
Set objHTTP = Nothing
End Function
Dans le code de la page j'ai trouvé :
<textarea class="lmt__textarea lmt__source_textarea
lmt__textarea_base_style" data-gramm_editor="false" autofocus=""
tabindex="110" dl-test="translator-source-input" lang="fr"
style="height: 521px;">
Contenu masqué (Agent utilisateur)
<div contenteditable="plaintext-only">ceci est un test</div>
</textarea>
Et un peu plus loin :
<textarea class="lmt__textarea lmt__target_textarea
lmt__textarea_base_style" data-gramm_editor="false" tabindex="110"
dl-test="translator-target-input" lang="en" style="height: 521px;">
Contenu masqué (Agent utilisateur)
<div contenteditable="plaintext-only">this is a test</div> = $0
</textarea>
Si tu enregistres la page html, les zones de texte sont vides. Il y a
donc beaucoup de js derrière. Pour éviter qu'on fasse gratuitement ce
que tu veux faire.
--
Vie : n.f. maladie mortelle sexuellement transmissible
Benoît chez leraillez.com