VB6 app
假设页面上有2个文本框A、B和一个按钮button在一个文本框A内输入中文(很简单的一个单词),在button-click事件激发以后,译出来,让另一个文本框B的内容等于翻译好的英文。我以前见到过一段代码,可以提交一个URL到Google online free translators,然后翻译出来。谁有这段代码能贴一下么?感激不尽!
假设页面上有2个文本框A、B和一个按钮button在一个文本框A内输入中文(很简单的一个单词),在button-click事件激发以后,译出来,让另一个文本框B的内容等于翻译好的英文。我以前见到过一段代码,可以提交一个URL到Google online free translators,然后翻译出来。谁有这段代码能贴一下么?感激不尽!
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ʃainə ] n. 中国,瓷器 |更好的结果,就分析返回的xml文件吧
我还没搞定呢。
看来要加班继续研究这个问题。
谢谢楼上的各位,还有啥好主意没?
这里讲的是在ASP web程序里面实现中英互译可是VB6(Windows应用程序)里面怎么套用啊?
'**模 块 名: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
'**模 块 名: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