Files

74 lines
1.9 KiB
Plaintext

CLOSE DATABASES
SET DELETED ON
SET CENTURY on
SET ANSI ON
SET EXACT ON
*!* SET DEFAULT TO "d:\roa_trunk\roastart\locale"
USE locale IN 0 SHARED
*Use test
oGt = Createobje("ugt") && ,"google.prg")
SELECT locale
Scan For Language='English' AND !translated
*!* ?oGt.translate("ro","en",cuvant)
lcPhrase = ALLTRIM(phrase)
IF RIGHT(lcPhrase,1) = '*'
lcPhrase = LEFT(lcPhrase, LEN(lcPhrase) - 1)
ENDIF
lcTranslated = oGt.translate("ro","en",lcPhrase)
IF !EMPTY(lcTranslated)
Replace phrase With lcTranslated , translated WITH .T.
ENDIF
ENDSCAN
Select locale
Browse
Define Class ugt As Custom
* apiUrl = "http://translate.google.com/translate_t?&"+"hl=en&"+"ie=UTF8"
apiUrl = "http://translate.google.com/translate_t?"
*!* apiStartTags = "<"+"div id=result_box dir=ltr>"
apiStartTags = [<div id=result_box dir="ltr">]
apiEndTags = "<"+"/div>"
Function translate(lcFrom,lcTo,lcText)
Local lcHttp As MSXML2.XMLHTTP
Local lcRequest As String
lcRequest = This.apiUrl+"langpair="+This.urlEncode(lcFrom+"|"+lcTo)+"&"+"text="+This.urlEncode(lcText)
lcHttp = Createobject("MSXML2.XMLHTTP")
*!-- lcHttp.open("GET",this.apiUrl,.f.)
lcHttp.Open("GET",lcRequest,.F.)
lcHttp.Send()
*!* DEBUG
*!* SUSPEND
If lcHttp.Status == 200
lcText = Strextract(lcHttp.responseText,This.apiStartTags,This.apiEndTags)
Endif
Return lcText
Endfunc
Function urlEncode
Parameters tcValue, llNoPlus
Local lcResult, lcChar, lnSize, lnX
*** Do it in VFP Code
lcResult=""
For lnX=1 To Len(tcValue)
lcChar = Substr(tcValue,lnX,1)
If Atc(lcChar,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0
lcResult=lcResult + lcChar
Loop
Endif
If lcChar=" " And !llNoPlus
lcResult = lcResult + "+"
Loop
Endif
*** Convert others to Hex equivalents
lcResult = lcResult + "%" + Right(Transform(Asc(lcChar),"@0"),2)
Endfor
Return lcResult
Endfunc
Enddefine