吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2443|回复: 14
收起左侧

[其他原创] 极简英汉翻译小工具VBS

  [复制链接]
pythonfun 发表于 2025-8-11 12:04
本帖最后由 pythonfun 于 2025-8-11 12:22 编辑

一、软件名称:英汉翻译小工具(62Kb)
二、使用语言:VBS,可以打包成exe
二、软件功能
1. 可以翻译输入的中文和英文,包括单词、短语和句子,限制50字符
2. 调用的是小牛机器翻译的api,大家可以去申请一下免费的。
三、使用方法
1. 双击极简翻译工具.vbs,输入要翻译的英文或中文,回车,即可弹出翻译结果。再回车可重新提问。
2. 结果不能复制,只能作为一个参考。
四、注意事项
1. 使用前需要申请免费机器翻译api。
2. 本软件为免费软件,请务滥用。
五、软件截图
image.png

wechat_2025-08-11_120722_317.png

六、代码展示:
[Visual Basic] 纯文本查看 复制代码
Option Explicit

Const API_KEY = "<这里要输入你自己申请的翻译api>"
Const API_URL = "http://api.niutrans.com/NiuTransServer/translation"

Dim inputText, translatedText

inputText = InputBox("请输入要翻译的中文或英文:", "中英文翻译")

If Trim(inputText) = "" Then
    MsgBox "未输入任何内容。", vbExclamation, "提示"
    WScript.Quit
End If

If Len(inputText) > 50 Then
    MsgBox "输入内容不能超过 50 个字符,请重新输入。", vbExclamation, "提示"
    WScript.Quit
End If

Dim srcLang, tgtLang

' 判断第一个非空字符的 Unicode 范围来推测语言
Dim firstChar, code

firstChar = Mid(Trim(inputText), 1, 1)
code = AscW(firstChar)

If code >= 19968 And code <= 40869 Then
    srcLang = "zh"
    tgtLang = "en"
Else
    srcLang = "en"
    tgtLang = "zh"
End If


translatedText = TranslateText(inputText, srclang, tgtlang)

If translatedText <> "" Then
    MsgBox "翻译结果:" & vbCrLf & vbCrLf & inputText & vbCrLf & translatedText, vbInformation, "中英互译"
Else
    MsgBox "翻译失败,请检查网络或API配置。", vbCritical, "错误"
End If

Function TranslateText(text, srcLang, tgtLang)
    Dim http, postData, response, json, result

    On Error Resume Next
    Set http = CreateObject("MSXML2.XMLHTTP")

    postData = "from=" & srcLang & "&to=" & tgtLang & "&apikey=" & API_KEY & "&src_text=" & URLEncodeUTF8(text)

    http.Open "POST", API_URL, False
    http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    http.Send postData

    If http.Status = 200 Then
        response = http.responseText
        ' 简单提取 tgt_text 内容
        Dim startPos, endPos
        startPos = InStr(response, """tgt_text"":""")
        If startPos > 0 Then
            startPos = startPos + Len("""tgt_text"":""")
            endPos = InStr(startPos, response, """")
            If endPos > startPos Then
                result = Mid(response, startPos, endPos - startPos)
                result = Replace(result, "\r\n", vbCrLf)
                result = Replace(result, "\n", vbCrLf)
                result = Replace(result, "\\", "\")
            Else
                result = "(未能提取翻译结果)"
            End If
        Else
            result = "(未找到翻译字段)"
        End If
    Else
        result = "(请求失败,状态码:" & http.Status & ")"
    End If

    If Err.Number <> 0 Then
        result = "(发生错误:" & Err.Description & ")"
        Err.Clear
    End If

    On Error GoTo 0
    TranslateText = result
End Function


' URL编码函数
' UTF-8 URL 编码函数
Function URLEncodeUTF8(str)
    Dim objStream, objStreamUtf8, bytes, i, hexChar

    ' 原始字符串 -> UTF-8 字节流
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Type = 2 ' text
    objStream.Mode = 3 ' read/write
    objStream.Open
    objStream.Charset = "UTF-8"
    objStream.WriteText str
    objStream.Position = 0
    objStream.Type = 1 ' binary
    bytes = objStream.Read
    objStream.Close

    ' 转成 %XX 形式
    URLEncodeUTF8 = ""
    For i = 1 To LenB(bytes)
        hexChar = Hex(AscB(MidB(bytes, i, 1)))
        If Len(hexChar) = 1 Then hexChar = "0" & hexChar
        ' 0-9 / A-Z / a-z 不编码
        If (AscB(MidB(bytes, i, 1)) >= 48 And AscB(MidB(bytes, i, 1)) <= 57) _
        Or (AscB(MidB(bytes, i, 1)) >= 65 And AscB(MidB(bytes, i, 1)) <= 90) _
        Or (AscB(MidB(bytes, i, 1)) >= 97 And AscB(MidB(bytes, i, 1)) <= 122) Then
            URLEncodeUTF8 = URLEncodeUTF8 & Chr(AscB(MidB(bytes, i, 1)))
        Else
            URLEncodeUTF8 = URLEncodeUTF8 & "%" & hexChar
        End If
    Next
End Function

七、下载地址:
vbs文件需要填入你自己的api
极简翻译工具.zip (1.89 KB, 下载次数: 31)

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
hrh123 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wyw6813 发表于 2025-8-11 13:39
设计不怎么好,最好在输入框下面直接加个输出框,输出翻译的结果,再加一个复制按钮
 楼主| pythonfun 发表于 2025-8-11 14:05
wyw6813 发表于 2025-8-11 13:39
设计不怎么好,最好在输入框下面直接加个输出框,输出翻译的结果,再加一个复制按钮

你想到的,我也想到了.下一次可以发一个python的,那个vbs的功能单一
lixing210 发表于 2025-8-11 12:40
cagu 发表于 2025-8-11 13:36
支持发布轻量级绿色软件,多谢分享了
yangkun1988 发表于 2025-8-11 14:07
谢谢分享,不联网可以使用么
52PJ070 发表于 2025-8-11 14:12
wyw6813 发表于 2025-8-11 13:39
设计不怎么好,最好在输入框下面直接加个输出框,输出翻译的结果,再加一个复制按钮

很不错的建议,支持!希望楼主采纳,方便复制。
s332233 发表于 2025-8-11 14:43
谢谢大佬分享
tanjianyan 发表于 2025-8-11 15:24
感谢大佬分享!
pjyanzi 发表于 2025-8-11 16:13
调用api的,断网不翻译
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-8-28 03:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表