Red de conocimiento informático - Problemas con los teléfonos móviles - Herramienta de traducción de código fuente Vb

Herramienta de traducción de código fuente Vb

Public Const BAIDU_APP_ID = "XXXX" 'Obtenido después de la aplicación Baidu.

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

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: