Utilizzando Google Translate in una macro VBA di Excel

Gente….Per alcuni anni ho usato la funzione riportata di seguito, in una delle mie macro di Excel per aiutarmi a comporre le didascalie delle foto dall’inglese verso il francese. Questa mattina è iniziato il lancio di un errore, che ha sottolineato l’ .Send comando nel codice riportato di seguito:

Public Function getGoogleTranslation(strSource As String, strSourceLang As String, strDestLang As String) As String
Dim strURL As String, x As String

strURL = "http://translate.google.com/translate_a/t?client=t&text=" & _
         Replace(strSource, " ", "%20") & _
         "&hl=en&sl=" & strSourceLang & _
         "&tl=" & strDestLang & "&multires=1&pc=0&rom=1&sc=1"

With CreateObject("msxml2.xmlhttp")
    .Open "get", strURL, False
    .send
    x = .responseText
End With

getGoogleTranslation = Replace(Replace(Split(x, ",")(0), "[", ""), """", "")

End Function

Quando ho copia/incolla il contenuto del strURL direttamente in IE, la prima volta che ho avuto un CAPTCHA e un commento che si sta verificando per ‘robot’. La seconda volta che viene lavorato direttamente. Essi devono essere impostazione di un cookie??

C’è comunque tutto questo? O un altro modo per ottenere le frasi tradotte in una macro?

Grazie….RDK

  • Sarà necessario utilizzare le API di Google translate per i browser. Ti verrà data una connessione token. Questo vi aiuterà a evitare i fastidiosi captcha. Prova questo: web.archive.org/web/20110720142541/http://basharkokash.com/post/…
  • Presumo che ti riferisci a Google Translator Toolkit? Ho sfogliato velocemente e sembra essere orientata verso il codice della pagina web e non VBA. Sono io che sbaglio? Ho seguito anche il link che hai fornito e altri link correlati. WOW, usando il Traduttore di Bing è molto più complicato di quello che ho postato sopra.
  • OK, fatto con Google Translate! Di non essere più liberi di VBA per utilizzo anche come piccolo come il mio. Alla ricerca nell’utilizzo di Microsoft Translator tramite VBA. Appena iscritto su Microsoft Azure Marketplace e 2 milioni di caratteri/mese per libero.
  • Felice per voi, si può, si prega di post che come una risposta così che altri utenti possano beneficiare in futuro?
  • JLILI….Problema risolto con il nuovo codice, utilizzando Microsoft Tradurre. Io riferire su come MS Tradurre confronta per le mie precedenti esperienze con Google Translate….
  • JLILI….OK, dopo la firma fino al datamarket.azure.com per creare un account, quindi fare clic su “Applicazioni” e creare un “applicazione”. Vi verrà fornito con un client id e una password segreta per l’applicazione. Infine, per il codice VBA, andare a sysmod.wordpress.com/2012/01/09/…. Ho dovuto modificare il codice un po ‘ come sto usando Excel 2003, ma fondamentalmente è pronto per l’uso dopo aver includere il vostro ID e Password….RDK

InformationsquelleAutor RDK | 2015-04-09



3 Replies
  1. 2

    OK, fatto con Google Translate! Di non essere più liberi di VBA per utilizzo anche come piccolo come il mio. Ora utilizzando Microsoft Translator tramite VBA. Appena iscritto su Microsoft Azure Marketplace e ottenere 2 milioni di caratteri/mese per libero.

    Ho usato questo sistema per diversi mesi e ora funziona bene come Google Translate fatto. Non è perfetto, ma abbastanza buono….RDK

  2. 0

    Il seguente è solo beta-realizzazione di un google-traduzione del modulo vba:
    (utilizzato per la traduzione rapida di un software)…
    forse avete bisogno di controllare manualmente il testo poi per correttezza.

    Private Function GoogleTranslate(ByVal Text4Translation, ByVal resLang, ByVal srcLang) As String
    Dim IEApp As Object
    Dim IEDoc As Object
    Dim IEUrl As String
    Dim IESrc As String
    Dim IEBeg As Long
    Dim IEEnd As Long
    ' Neues Browser Objekt erzeugen
    Set IEApp = CreateObject("InternetExplorer.Application")
    ' Browser versteckt ausführen (höhere Geschwindigkeit)
    'IEApp.Visible = False
    ' URL Generieren
    Text4Translation = Replace(Text4Translation, " ", "%20")
    IEUrl = "https://translate.google.com/#" & srcLang & "/" & resLang & "/" & Text4Translation
    ' HTML-Datei aufrufen
    IEApp.navigate IEUrl
    Do
        Application.Wait Now + TimeSerial(0, 0, 1)
    Loop Until IEApp.busy = False
    Set IEDoc = IEApp.document
    ' Quelltext einlesen
    IESrc = IEDoc.body.innerHTML
    ' Bereich auslesen
    IEBeg = InStr(1, IESrc, "result_box")
    If IEBeg = 0 Then
        IESrc = " # Nothing found"
    Else
        IEEnd = InStr(IEBeg, IESrc, "</div")
        IESrc = Mid(IESrc, IEBeg + 40, IEEnd - IEBeg - 40)
        IESrc = Replace(IESrc, "<span class=" & Chr(34) & "hps" & Chr(34) & ">", "")
        IESrc = Replace(IESrc, "<span class=" & Chr(34) & "atn" & Chr(34) & ">", "")
        IESrc = Replace(IESrc, "<span class=" & Chr(34) & "hps atn" & Chr(34) & ">", "")
        IESrc = Replace(IESrc, "<span>", "")
        IESrc = Replace(IESrc, "</span>", "")
        If IESrc = "" Then IESrc = " # Instr-Error"
    End If
    Set IEApp = Nothing
    GoogleTranslate = IESrc
    End Function

    resLang = “de”,”it”, … (TargetLanguage)

    srcLang = “de”,”it”, … (SourceLanguage)

    (Attenzione, il suo solo una soluzione!)

    • È il servizio di Google ora disponibile gratuitamente per il basso volume di utilizzo? Quando ho salvato su Google volevano soldi VERI per i miei pochi Mb di utilizzo
  3. 0

    Si prega di fare riferimento per ottenere Fonetica di Google trascrizione (Come stringa)
    (È appena sotto la casella di testo, quando tradurre dall’inglese parole)

    • Questa risposta potrebbe essere un commento, o si può provare a dettaglio di più.

Lascia un commento