Rutina para traducir texto usando Google Translator

Hola amigos foxeros aquí les dejo una rutina para traducir cualquier texto del idioma al idioma que se desee, la rutina es muy rápida y utiliza el objeto IE para conectarse con el traductor de Google.

 

VFPSTEAM BI

 

Parámetros

lcTextoTrans = Texto que se desea traducir

lcIdIni  = Idioma inicial

lcIdFin = Idioma final

 

Uso

? Traducir_Texto("Hola ejemplo de traducción español ingles","es","en")

? Traducir_Texto("Aquí les dejo un ejemplo de como traducir texto de forma fácil y rápida usando nuestro querido zorrito","es","en")


Destruir si se desea el objeto

Cerrar_loIE ()

 

*!* FUNCION PARA TRADUCCION

FUNCTION Traducir_Texto (lcTextoTrans,lcIdIni,lcIdFin,llRe)

IF PCOUNT() < 3

  RETURN "* FALTAN PARAMETROS *"

ENDIF


IF EMPTY(lcTextoTrans)

  RETURN "*!*"

ENDIF

 

LOCAL lcUrlGo,loDocIE,lcResulTrans 

    

lcResulTrans = ""

IF !llRe

    lcTextoTrans = STRTRAN(lcTextoTrans,CHR(13) + CHR(10),CHR(32))

    lcTextoTrans = STRTRAN(lcTextoTrans,CHR(32),"%20")

ENDIF

 

IF !PEMSTATUS(_SCREEN, "loIE", 5)

  _SCREEN.AddProperty ("loIE",.F.)

ENDIF


IF VARTYPE(_SCREEn.loIE) <> "O"

  _SCREEN.loIE = CREATEOBJECT("InternetExplorer.Application")

ENDIF   

_SCREEN.loIE.Silent = .F. 

 

lcUrlGo = "http://translate.google.com/?hl=es&tab=TT#" + lcIdIni + "/" + lcIdFin + "/" + ALLTRIM(LOWER(lcTextoTrans))

_SCREEN.loIE.Navigate2(lcUrlGo)


DO WHILE _SCREEN.loIE.Busy .OR. TYPE("_SCREEN.loIE.Document") <> "O"

  =INKEY(0.01,"H")  &&TIEMPO DE RESPUESTA PODEMOS AUMENTAR PARA OBTENER LA TRADUCCION

ENDDO


loDocIE = _SCREEN.loIE.Document

IF VARTYPE(loDocIE.getElementById('result_box')) = "O"

     lcResulTrans = loDocIE.getElementById('result_box').textContent

ENDIF

    

IF EMPTY(lcResulTrans)

     IF !llRe

          *!* HUBO UN DETALLE EN EL TIEMPO DE ESPERA NO NOS DEVOLVIÓ LA TRADUCCIÓN RE-INTENTAMOS

          lcResulTrans = Traducir_Texto (lcTextoTrans,lcIdIni,lcIdFin,.T.)

         ELSE

          *!* FALLO EL RE-INTENTO

          lcResulTrans = "*ERROR*"

    ENDIF   

 ENDIF

    

    RETURN lcResulTrans

ENDFUNC 


*!* FUNCION PARA CERRAR EL OBJETO IE

FUNCTION Cerrar_loIE


IF PEMSTATUS(_SCREEN, "loIE", 5)

  IF VARTYPE(_SCREEn.loIE) = "O"

     _SCREEn.loIE.Quit

     _SCREEn.loIE = .F.

  ENDIF

ENDIF   


ENDFUNC  

Escribir comentario

Comentarios: 0