VB6  app
假设页面上有2个文本框A、B和一个按钮button在一个文本框A内输入中文(很简单的一个单词),在button-click事件激发以后,译出来,让另一个文本框B的内容等于翻译好的英文。我以前见到过一段代码,可以提交一个URL到Google online free translators,然后翻译出来。谁有这段代码能贴一下么?感激不尽!

解决方案 »

  1.   

    网上有中文英文双向翻译WEB服务,可以试试
      

  2.   

    http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?op=getEnCnTwoWayTranslator免费的
      

  3.   

    一个思路,因为我自己没有去试着做这应该是post到google你可以抓一下http头文件,然后取一下返回信息就知道了
      

  4.   

    测试了下:    Dim oHTTP As XMLHTTP
        Dim oXmlDoc As DOMDocument
        Dim strWebserviceURL As String, strRequest As String
        Dim s As String
        
        strWebserviceURL = "http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx/getEnCnTwoWayTranslator"
        strRequest = "Word=china"  '翻译的单词
        
        Set oHTTP = New XMLHTTP
        oHTTP.Open "POST", strWebserviceURL, False
        oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        oHTTP.send (strRequest)
        
        Set oXmlDoc = New DOMDocument
        oXmlDoc.Load oHTTP.responseXML
            
        Debug.Print oXmlDoc.Text结果:China: [ 't&#643ain&#601 ] n. 中国,瓷器 |更好的结果,就分析返回的xml文件吧
      

  5.   

    回莫莫,是Windows应用程序呀。不是web程序。
    我还没搞定呢。
    看来要加班继续研究这个问题。
    谢谢楼上的各位,还有啥好主意没?
      

  6.   

    http://epasser.aydc.com.cn/article/adp/2-10-2/content13334.html
    这里讲的是在ASP web程序里面实现中英互译可是VB6(Windows应用程序)里面怎么套用啊?
      

  7.   

    我没有说web我都已经把思路告诉你了,汗。难道你一点都不知道怎么用VB去访问web给你看怎么把英文变成中文。不过这是最基本的代码,需要进行修改。'from code'*************************************************************************
    '**模 块 名:frmMain
    '**说    明:版权所有2007 - 2008(C)
    '**创 建 人:daisy li
    '**日    期:2007-09-10 23:50:37
    '**描    述:借助Google 英翻中
    '*************************************************************************Option ExplicitDim strEn As String   '翻译的英文Private Sub cmdTranslate_Click()    strEn = Trim(txtEn.Text)    If strEn = "" Then Exit Sub
        With Me.Winsock1
            .RemoteHost = "www.google.com"
            .RemotePort = 80
            .Connect
        End WithEnd SubPrivate Sub Command1_Click()
        Winsock1.Close
    End SubPrivate Sub Form_Load()
        txtEn.Text = ""
        txtCN.Text = ""
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        Winsock1.Close
    End SubPrivate Sub Winsock1_Connect()
        Dim strSend  As String '定义发送HTTP头    strSend = "POST /translate_t?langpair=en|zh-CN HTTP/1.1" & vbCrLf
        strSend = strSend & "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" & vbCrLf
        strSend = strSend & "Host: www.google.com" & vbCrLf
        strSend = strSend & "Content-Length: 47" & vbCrLf    strSend = strSend & vbCrLf & "hl=zh-CN&ie=UTF8&text=" & strEn & "&" & "langpair=en%7Czh-CN" & vbCrLf    Winsock1.SendData strSend & vbCrLfEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        Dim strData() As Byte
        Dim strRst As String    Me.Winsock1.GetData strData()    strRst = strRst & UTF8_Decode(strData())    If txtCN.Text <> "" Then
            Winsock1.Close        Exit Sub  '判断已经取到结果了    End If
        txtCN.Text = GetCN(strRst)
    End SubPrivate Function GetCN(strMsg As String) As String
        Dim i As Integer    Dim m As Integer
        Dim n As Integer    i = InStrRev(strMsg, "result_box", -1)    If i = 0 Then Exit Function    strMsg = Mid(strMsg, i, 500)    m = InStr(strMsg, "</div>")
        n = InStr(strMsg, ">")    GetCN = Mid(strMsg, n + 1, m - n - 1)End Function
      

  8.   

    'BAS CODE'*************************************************************************
    '**模 块 名:MudUTF8
    '**说    明:版权所有2007 - 2008(C)
    '**日    期:2007-09-11 00:10:41
    '**描    述:UTF8 (dp)
    '**版    本:V1.0.3 
    '*************************************************************************
    Option ExplicitPublic Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
    Public Const CP_UTF8 = 65001Public Function UTF8_Decode(bUTF8() As Byte) As String
        Dim lRet As Long
        Dim lLen As Long
        Dim lBufferSize As Long
        Dim sBuffer As String
        
        lLen = UBound(bUTF8) + 1
        
        If lLen = 0 Then Exit Function
           
        lBufferSize = MultiByteToWideChar(CP_UTF8, 0, VarPtr(bUTF8(0)), lLen, 0, 0)
            
        sBuffer = String$(lBufferSize, Chr(0))
        
        lRet = MultiByteToWideChar(CP_UTF8, 0, VarPtr(bUTF8(0)), lLen, StrPtr(sBuffer), lBufferSize)
        
        UTF8_Decode = sBuffer
    End Function
      

  9.   

    够详细了吧思路是先截取google的HTTP头,然后利用winsock post出去再而获得返回页面,然后分析页面代码需要注意的是HTTP头,原页面是gzip的,在写头文件去掉winsock 需要取多次才能取完整,一般我们取得结果就可以close掉了google是UTF8的,所以需要解码,bas就是负责解码部分