15 de abril de 2012

Función Traductor Ingles-Español con Google Translator

Función que traduce texto del ingles al español recibe como parámetro el texto en ingles y lo devuelve en español, utilizando para esto el motor de traducción de Google.

Esta funcion utiliza automatizacion de un objeto IE (Internet Explorer) y extrae el codigo HTML y depura el texto traducido.
? TraducirIE("Nothing runs like a fox")

FUNCTION TraducirIE
  LPARAMETERS ATRA
  LOCAL cUrl, Texto, oIE, cResul, oDoc,XPI,XPF,TRA,X
  IF TYPE("oIE")#'O'
    oIE = CREATEOBJECT("internetexplorer.application")
  ENDIF
  oIE.Navigate2("about:blank")
  cUrl=LOWER('http://translate.google.com.mx/?hl=es&tab=TT#en|es|'+ALLTRIM(ATRA))
  oIE.navigate2(cUrl)
  Texto ='Traduciendo.'
  DO WHILE oIE.busy OR oIE.readystate!=4
    WAIT WINDOW Texto TIMEOUT 0.1
    Texto=Texto+'.'
    IF OCCURS('.',Texto)>3
      Texto ='Traduciendo.'
    ENDIF
  ENDDO
  WAIT WINDOW 'Terminado' TIMEOUT 1
  oDoc = oIE.DOCUMENT
  Texto = TYPE('oDoc.body')
  cResul = oDoc.body.innerHTML()
  oDoc = .NULL.
  RELEASE oDoc
  oIE.QUIT
  RELEASE oIE
  XPI = AT('',cResul)+32
  cResul = SUBSTR(cResul,XPI)
  XPF = AT('',cResul)-1
  cResul = SUBSTR(cResul,1,XPF)
  X=OCCURS('<',cResul)
  TRA=''
  DO WHILE X>0
    XPI=0
    XPF=0
    XPI=AT('<',cResul)-1
    XPF=AT('>',cResul)+1
    TRA=TRA+SUBSTR(cResul,1,XPI)
    cResul=SUBSTR(cResul,XPF)
    X=OCCURS('<',cResul)
  ENDDO
  TRA=TRA+cResul
  RETURN TRA
ENDFUNC
Erick J. Mireles Riojas

3 comentarios :

  1. alguien corrigió el problema por favor es urgente

    ResponderEliminar
  2. alguien ha encontrado la solución, porque no existe ningún error

    ResponderEliminar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.