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

1 comentario :