Online vertaalmachine tekst kopieren

Status
Niet open voor verdere reacties.

Sander32

Gebruiker
Lid geworden
26 jul 2012
Berichten
65
Wie kan mij helpen met een url waar je zinnen kan intikken bijv in het engels of duits en na drukken op een vertaalknop een nieuwe pagina verschijnt met de vertaalde tekst. Let wel dat de zin in de url verborgen is zoals hoe Google het regelt:
http://translate.google.com/#nl/en/B...kan vertalen
Belangrijk punt te melden is dat ik de betreffende url niet geopend krijg, tenmiste dat geeft de pagina inhoud aan.
Onderstaande betreft de syntaxis

Code:
strUrl = "http://translate.google.com/#nl/en/Ben%20erg%20benieuwd%20of%20ik%20deze%20tekst%20kan%20vertalen%20"
fh = FreeFile
Set msXML = CreateObject("Microsoft.XMLHTTP")
msXML.Open "GET", strUrl, False
msXML.setRequestHeader "Content-type", "text/xml"
msXML.send
strpageContent = msXML.responseText
Debug.Print strpageContent

Ik heb hier eerder een programma gekopieerd om de reistijd te berekenen, was ook een Google oplossing.
Wellicht heeft iemand een website gevonden waar de tekst in de url is verstopt en daarna simpel op te vragen is dmv van de inhoud van de pagina op te vragen.
 
Laatst bewerkt door een moderator:
Code:
Option Explicit

Public Function GoogleTranslateAm(strFromCountry As String, strToCountry As String, strText As String) As String
    Dim cstrText As Long
    Dim strTextConvert As String
        For cstrText = 1 To Len(strText)
            Select Case Asc(Mid(strText, cstrText, 1))
                Case 48 To 57, 65 To 90, 97 To 122
                    strTextConvert = strTextConvert & Mid(strText, cstrText, 1)
                Case Else
                    strTextConvert = strTextConvert & "%" & Right("0" & Hex(Asc(Mid(strText, cstrText, 1))), 2)
            End Select
        Next
        With CreateObject("InternetExplorer.Application")
            .Visible = True
            .Navigate "http://www.translate.google.com/translate_t?langpair=" & strFromCountry & "|" & strToCountry & "&text=" & strTextConvert 'am_2012
            Do While .Busy Or .readyState <> 4
                DoEvents
            Loop
            GoogleTranslateAm = .Document.getelementbyid("result_box").innertext
            .Quit
        End With
End Function
 

Bijlagen

Laatst bewerkt:
Beste Alphamax

Geweldig en erg veel dank!
Ik laadde de syntaxis in en ik kreeg al een heel goed gevoel aan de code af te lezen.
Daarna zag ik dat het werkte en serieus waar een pak van mn hart.

Als ik je ergens kan helpen dan moet je maar een gil geven.

Gr,

Sander
 
tevreden met het antwoord?
dan graag de vraag op opgelost zetten
zodat de helpers aan de status van de vraag kunnen zien dat hun hulp niet meer nodig is
 
Eentje zonder Explorer-scherm ;)
Code:
Public Function getGoogleTranslation(strSource As String, strSourceLang As String, strDestLang As String) As String
Dim strURL As String
strURL = "http://translate.google.be/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
    getGoogleTranslation = Replace(Replace(Split(.responseText, ",")(0), "[", ""), """", "")
End With
End Function

Of je moest natuurlijk Visible = False gebruiken :D
 
Laatst bewerkt:
Mannen, nogmaals veel dank!
Ik zal de vraag op opgelost registreren.
 
Je geeft het volgende aan:
ik zie wel wat nieuwe parameters in de url ben benieuwd wat ze doen
Verwacht je dat Google deze gedeeltelijke opensource oplossing binnenkort uitschakeld?
Dit zou natuurlijk erg jammer zijn of verwacht je dat ze alleen wat aanpassingen doorvoeren maar nog steeds beschikbaar zullen blijven door programmeurs?
 
bij google veranderd om de zoveel tijd het opvragen van informatie, blijkbaar zitten ze daar ook niet stil
de code in bericht#2 is hoe google het tot voor kort voorschrijft
de code in bericht#5 is waarschijnlijk hoe het in een ver verleden is voorgeschreven
ik heb flink gezocht op internet en nergens een uitleg gevonden van alle parameters
ik heb niet het idee dat dingen uit een verleden worden uitgeschakeld, alleen dat er geen "onderhoud" meer plaats vindt
google noemt dat "deprecated"
 
Beste Aphamax,

Ik ben nu bezig met de gegevens te vertalen echter krijg ik bij enters allemaal vage characters terug.
Werkgevers
Bedrijf
Van
Tot
Functie
Promentum BV
Jan -2004
Heden
Project Manager
Kaya Systems BV
Mei -1998
Jan - 2004
Project Manager


krijg ik de volgende resultaat:
Employers ABedrijf% D%% D%% D% Avan ATot AFunctie% D%% D%% D% APromentum BV Ajan -2004 AHeden% D%% D%% D% AKaya AProject Manager Systems Inc.% D% -1998% AMEI Ajan D% - 2004% D% AProject Manager

Via de functie replace kan ik een hoop doen echter de letter A dat voor een woord staat die niet vertaalt kan worden kan ik niet zomaar weghalen.
Heb jij een idee hoe ik deze rotzooi kan filteren?
 
in de cellen F2:I15 van het bestand uit bericht#2 met windows7en, office2007nl en internetexplorer9en

From To From To
nl en Werkgevers Employers...
nl en Bedrijf Business...
nl en Van Of...
nl en Tot To...
nl en Functie Function...
nl en Promentum BV Promentum BV...
nl en jan-04 01/01/2004...
nl en Heden Today...
nl en Project Manager Project Manager...
nl en Kaya Systems BV Kaya Systems Inc.
nl en mei-98 05/01/1998...
nl en jan-04 01/01/2004...
nl en Project Manager Project Manager...
 
Laatst bewerkt:
Beste Alphamax,

Ik gebruik geen Excel maar Access XP.
Ik heb gewoon een tekstvak waar ik de vertalende tekst vandaan haal en door de functie doorheen haalt.
Maar doel je anders op dat ik geen enters in mijn tekst moet hebben?

Ik heb even een check gedaan zonder enters en werd er wel goed vertaalt.
Punt is dat je daarmee wel de boel vertraagt aangezien je zoveel mogelijk tekst er doorheen wilt halen anders duurt het te lang.
Zat ook te denken aan een aparte character meesturen bijv een tilde die niet vertaalt kan worden en daarna alle tilde vervangen met een enter.
Wellicht heb jij dit eerder meegemaakt en een oplossing bedacht.
 
zie bericht#2, nieuwe code (zat een foutje in het vertalen van de speciale tekens)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan