我最近被赋予编写一段FoxPro与谷歌翻译接口的任务,因此我们可以将我们软件中的文本翻译成当前用户/机器的语言。FoxPro,谷歌翻译和Unicode
我发现/修改/编写的代码完全适用于基于拉丁语的字符集,但如果您尝试类似中文的东西,则会返回所有问号。
我已经尝试使用VFP功能STRCONV()与每个可能的选项组合,但没有成功。我还试图在文本以任何方式操纵之前设置LocaleID - 仍然没有运气。
在这一点上,我没有想法。作为一个老的DOS程序员,我几乎没有任何处理unicode的经验。
我没有包含任何代码,因为正如我所说的,代码工作正常,除非您尝试使用中文(或日文)。
请帮忙!
编辑:这是与谷歌沟通的功能。还有其他的支持功能,但他们不需要做编码。
* MODIFIED BY: MICHAEL COOLEY - 11/19/2012
* PURPOSE: TRANSLATE TEXT FROM ONE LANGUAGE TO ANOTHER
* EXPECTS: STRING (SOURCE LANGUAGE CODE)
* STRING (DESTINATION LANGUAGE CODE)
* STRING (THE TEXT TO TRANSLATE)
* RETURNS:
FUNCTION Translate(lcFrom,lcTo,lcText)
LOCAL lcHttp AS MSXML2.XMLHTTP
LOCAL lcRequest AS String
lcRequest = "http://translate.google.com/translate_a/t?client=j" + ;
"&"+"text="+this.EncodeURL(lcText)+"&"+"hl="+lcTo+"&"+"sl="+lcFrom+"&"+"tl="+lcTo
lcHttp = CREATEOBJECT("MSXML2.XMLHTTP")
lcHttp.open("GET",lcRequest,.f.)
IF lcHttp.status == 200
lcText = this.GetTranslationString("trans", lcHttp.responseText) + CHR(10)
ELSE
lcText = ""
ENDIF
RETURN lcText
ENDFUNC
谢谢你的回复。我正在阅读文章 - 但到目前为止,任何东西已经提到过,我已经尝试过没有成功,但是,这是一篇大文章 - 也许我会在结束之前找到一些东西:) –