Herramienta de traducción de código fuente Vb
Public Const BAIDU_APP_KEY = "XXXX " 'Obtenido después de la solicitud de Baidu.
Tipo público MD5_CTX
dwNUMa As Long
dwNUMb As Long
Buffer expresado en bytes (15)
cIN(63) como Byte
cDig(15) como Byte
Tipo de fin
- Coloque lo anterior en el módulo de clase.
Función de declaración pública WideCharToMultiByte Lib " kernel 32 " (la página de códigos ByVal es larga, ByVal dwFlags es larga, ByVal lpWideCharStr es larga, ByVal cchWideChar es larga, ByRef lpMultiByteStr es Any, ByVal cchMultiByte es larga, ByVal lpDefaultChar es String, ByVal lpUsedDefaultChar es Long)
Declaración pública Sub MD5 final Lib "advapi 32" (contexto LP como MD5 _ CTX)
Declaración pública Sub MD5 init Lib "advapi 32" (Contexto LP como MD5 _ CTX)
public Declare Sub MD5 update Lib "advapi 32" (el contexto LP es MD5_CTX, ByRef lpBuffer es Any, ByVal BufSize es Long)
Función pública Traducir (el texto de ByVal es una cadena, la fuente de ByVal opcional es String = "auto", el destino de ByVal opcional es String = "auto", el AppID de ByVal opcional es String = BAIDU_APP_ID, la clave de ByVal opcional es String = BAIDU_APP_KEY) como cadena de caracteres
Dim XML como objeto, stcContext como MD5_CTX, URL como cadena, PostData como cadena, Salt como cadena
Dim Arr() como bytes, I como tipo entero largo, el resultado es una cadena
URL = "/api/trans/vip/translate "
Irregularizar
Sal = Reemplazar(Rnd," ", "")
MD5Init stcContext
PostData = " q = " amp texto
PostData = PostData amp" ampappid = " ampAppID
PostData = PostData amp" ampsalt = " amp salt
PostData = PostData amp" ampfrom = " amp fuente
PostData = PostData amp" ampto = " amp destino
PostData = PostData & " Símbolo = "
I = Len(AppID, texto, Salt y clave)
ReDim Arr(I * 3)
I = WideCharToMultiByte(65001, 0, StrPtr (AppID&Text&Salt&Key),I,Arr(0),I*31,vbNullString,0)
Si lt1 salgo de la función
MD5Update stcContext, Arr(0), I p>
MD5 stcContext final
Para I = 0 a UBou
nd(stcContext.cDig)
PostData = PostData ampLCase(IIf(Contexto STC . cdig(I) lt; 16, " 0 "Hex(stcContext.cDig(I)), Hex(stcContext.cDig( I)))
Entonces
Establecer XML = CreateObject("WinHttp.WinHttpRequest.5.1")
Opción(6) = falseOpción XML(4) = 13056
XML.Abrir "Publicación", URL
XML SetRequestHeader "Tipo de contenido", "aplicación/x-www-" form-urlencoded "
XML. SetRequestHeader " Content-lent ", LenB(StrConv(PostData, vbFromUnicode))
XML. Enviar PostData
PostData = XML . Texto de respuesta
Establecer XML = Ninguno
I = InStr(PostData, "Error Code")
si obtengo, entonces 0
Resultado = "Código de error:" ; Mid(PostData, I 13, InStr(I 13, PostData, " " " "- I - 13)
I = InStr(PostData, " error_msg ")
Resultado = amplificador de resultado", descripción: ";Mid(PostData, I 12, InStr(I 12, PostData, " " " "- I - 12)
Otro
I = 1
PostData = Reemplazar(PostData, " \ " " ", " \ ' ")
Hacer hasta InStr(I, PostData, " " " dst " ": " ")= 0
I = InStr(I, PostData, " " " dst " ": " ") 7
Resultado = IIf(Len(Resultado) = 0, "", Resultado ampvbCrLf) amp; Mid(PostData, I, InStr(I, PostData, " " " "- I)
Anillo
Resultado = Reemplazar(Resultado, " \ ' ", """")
ReDim Arr(1)
Hacer hasta InStr(Result, " \u") = 0
I = InStr(resultado, "\u")
Resultado = Reemplazar(Resultado, Mid(Resultado, I, 6), ChrW(amp;H " ampMid(resultado, I 2, 4)))
Timbre
Terminará si...
Translación=resultado
Finalizar función
Llamada: texto 1 = traducir("¡Hola mundo! ")
ID de la aplicación y dirección clave: