-->

FoxPro中,谷歌翻译,和Unicode(FoxPro, Google Translate, an

2019-10-17 10:15发布

我最近一直给写了一块的FoxPro的任务与谷歌界面翻译,所以我们可以翻译我们的软件的文本到当前用户/机器语言。

该代码我发现/修改/写的作品完美的拉丁语字符集,但如果你尝试像中国它回来所有问号。

我已经尝试使用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

Answer 1:

Unicode的问题是不是在VFP新的,我建议你阅读这篇文章从里克施特拉尔:

---在Visual FoxPro中的Web和桌面应用程序使用Unicode ---

http://www.west-wind.com/presentations/foxunicode/foxunicode.asp

在这篇文章中,我将介绍如何在同时支持多国语言的上下文中使用Unicode与您的应用程序。 虽然Visual FoxPro不能直接显示Unicode,它可以显示不同的字符通过使用代码页的设置 - 区域设置特定字符映射 - 这VFP容易支持。 这非常适用于只从单一的语言/区域设置显示内容的应用程序。 但是,如果你需要同时显示多个语言的字符串这种做法有很大的局限性。 我开始的问题的概述,以及如何使用Unicode一般的工作,然后告诉你如何检索和更新Unicode数据,最后,告诉你如何得到Unicode的内容在Web和桌面用户界面同时显示



Answer 2:

03,我不能相信人们还在使用FoxPro中。 用,葡萄牙语的问题是,它可能使用2个字节的字符进行编码,而基于拉丁文LANGS最有可能单字节,因而向后兼容latin1编码这可能是FoxPro中使用默认的字符编码兼容。

在哪里你的应用程序实际上打破? 如,它只是一个呈现的问题? 或者做任何你正在使用,以传达给谷歌翻译服务,您从获得的字符都回来了乱码?

例如,如果正在使用某种流表示的(对不起,我不是一个VBA编程,没有细节),此流对象应该有一个工厂设置的字符编码。

编辑:尝试设置请求头,像这样

lcHttp.setRequestHeader "Content-Type", "text/html; charset=utf-8"



文章来源: FoxPro, Google Translate, and Unicode