为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 网络相关源码 正文

易语言编写翻译小工具源码

三叶资源网 2019-05-07 15:44:45 网络相关源码 3290 ℃ 3 评论

易语言编写翻译小工具源码

@易小学生

.版本 2
.支持库 EXMLParser
.支持库 spec
.支持库 EThread

.程序集 窗口程序集_启动窗口

.子程序 子程序_翻译

子程序_发送翻译 (1, 编码_URL编码 (编码_gb2312到utf8 (编辑框_输入.内容), 真, ))
子程序_发送翻译 (2, 编码_URL编码 (编码_gb2312到utf8 (编辑框_输入.内容), 真, ))
子程序_发送翻译 (3, 编码_URL编码 (编码_gb2312到utf8 (编辑框_输入.内容), 真, ))

' 有道: http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=hello
' 百度: https://fanyi.baidu.com/transapi?from=auto&to=en&query=%E4%BD%A0%E5%A5%BD
' BING: http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=AFC76A66CF4F434ED080D245C30CF1E71C22959C&from=&to=zh&text=hello

.子程序 子程序_发送翻译
.参数 翻译接口, 整数型, , 1 为百度,2 为有道,3 为Bing
.参数 翻译内容, 文本型
.局部变量 局_有道访问, 文本型
.局部变量 局_Bing访问, 文本型
.局部变量 局_百度访问, 文本型
.局部变量 局_返回文本, 文本型
.局部变量 局_地址, 文本型
.局部变量 JSON, 类_json
.局部变量 XML, XML树
.局部变量 局_源语种, 文本型
.局部变量 局_目标语种, 文本型

子程序_语种检测 (局_源语种, 局_目标语种)
.判断开始 (翻译接口 = 1)
    局_百度访问 = “https://fanyi.baidu.com/transapi?from=%s&to=%s&query=%s”
    局_地址 = 取文本 (局_百度访问, 局_源语种, 局_目标语种, 翻译内容)
.判断 (翻译接口 = 2)
    局_地址 = “http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=” + 翻译内容
    ' 有道POST :http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule 数据:i=翻译文本&from=源语种&to=目标语种&smartresult=dict&client=fanyideskweb&salt=随机数&sign=/fanyideskweb+翻译文本+随机数+6x(ZHw]mwzX#u0V7@yfwK/&doctype=json&version=2.1&keyfrom=fanyi.web&action=FY_BY_CLICKBUTTION&typoResult=false
.判断 (翻译接口 = 3)
    局_Bing访问 = “http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=AFC76A66CF4F434ED080D245C30CF1E71C22959C&from=&to=%s&text=%s”
    局_地址 = 取文本 (局_Bing访问, 局_目标语种, 翻译内容)
.默认

.判断结束
' 局_返回文本 = 到文本 (网页_访问 (局_地址, 0))
.判断开始 (翻译接口 = 1)
    局_返回文本 = 编码_Utf8到Ansi (网页_访问 (局_地址, 0))
    JSON.解析 (局_返回文本)
    局_返回文本 = JSON.取通用属性 (“data[0].result[0][1]”, )
    调试输出 (“百度翻译结果:” + 局_返回文本)
    翻译文本输出 (局_返回文本, 1)
.判断 (翻译接口 = 2)
    局_返回文本 = 编码_Utf8到Ansi (网页_访问 (局_地址, 0))
    JSON.解析 (局_返回文本)
    局_返回文本 = JSON.取通用属性 (“translateResult[0][0].tgt”, )
    调试输出 (“有道翻译结果:” + 局_返回文本)
    翻译文本输出 (局_返回文本, 2)
.判断 (翻译接口 = 3)
    XML.导入 (网页_访问 (局_地址, 0))
    XML.取节点值 (“string”, 局_返回文本)
    局_返回文本 = 编码_URL解码 (局_返回文本, 真)
    调试输出 (“Bing翻译结果:” + 局_返回文本)
    翻译文本输出 (局_返回文本, 3)
.默认

.判断结束


.子程序 翻译文本输出
.参数 内容, 文本型
.参数 翻译工具, 整数型, , 1 为百度翻译,2 为有道翻译,0 为未知
.局部变量 局_翻译工具, 文本型

.判断开始 (翻译工具 = 0)
    局_翻译工具 = “未知翻译”
.判断 (翻译工具 = 1)
    局_翻译工具 = “百度翻译(可设置目标语种)”
.判断 (翻译工具 = 2)
    局_翻译工具 = “有道翻译(中英互译或译为中文)”
.判断 (翻译工具 = 3)
    局_翻译工具 = “Bing翻译(支持部分目标语种)”
.默认

.判断结束
编辑框_输出.加入文本 (内容 + #换行符 + #换行符 + “- - - - - - - - - - -” + 局_翻译工具 + #换行符 + #换行符)

.子程序 子程序_语种检测
.参数 源语种, 文本型, 参考
.参数 目标语种, 文本型, 参考
.局部变量 局_语种数组, 文本型, , "0"
.局部变量 i, 整数型

局_语种数组 = 分割文本 (#语种对比, #换行符, )
.如果真 (取数组成员数 (局_语种数组) < 1)
    返回 ()
.如果真结束
.计次循环首 (取数组成员数 (局_语种数组), i)
    .判断开始 (寻找文本 (局_语种数组 [i], 组合框_源语言.取项目文本 (组合框_源语言.现行选中项), , 假) ≠ -1)
        源语种 = 取文本左边 (局_语种数组 [i], 寻找文本 (局_语种数组 [i], “----”, , 假) - 1)
    .判断 (寻找文本 (局_语种数组 [i], 组合框_目标语言.取项目文本 (组合框_目标语言.现行选中项), , 假) ≠ -1)
        目标语种 = 取文本左边 (局_语种数组 [i], 寻找文本 (局_语种数组 [i], “----”, , 假) - 1)
    .默认

    .判断结束

.计次循环尾 ()


.子程序 _编辑框_输入_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

编辑框_输出.内容 = “”
启动线程 (&子程序_翻译, , )

.子程序 编码_usc2到ansi, 文本型, , 将usc2转变成ansi  如 %u0031%u0032%u0033 转换后为 123 失败返回空文本
.参数 参_欲转换的文本, 文本型, , \u %u \u25 等3种格式,如果是其它格式,请先用子文本替换成这三种的任意一种才能正常转换
.局部变量 变_对象, 对象
.局部变量 变_文本, 文本型
.局部变量 变_返回值, 文本型

变_文本 = 子文本替换 (参_欲转换的文本, #换行符, “{$}”, , , 真)
.如果真 (取字节集左边 (到字节集 (取文本左边 (变_文本, 10)), 1) = { 13 })
    变_文本 = 到文本 (子字节集替换 (到字节集 (变_文本), { 13 }, {  }, , 1))
.如果真结束
.判断开始 (寻找文本 (变_文本, “u”, , 假) ≠ -1)
    变_文本 = 子文本替换 (变_文本, “u”, “%u”, , , 真)
.判断 (寻找文本 (变_文本, “u25”, , 假) ≠ -1)
    变_文本 = 子文本替换 (变_文本, “u25”, “%u”, , , 真)
.默认

.判断结束
变_文本 = 子文本替换 (变_文本, “'”, “’”, , , 真)
CoInitialize (0)
变_对象.创建 (“ScriptControl”, )
变_对象.写属性 (“Language”, “JScript”)
变_对象.数值方法 (“ExecuteStatement”, “function xx(){var x='” + 变_文本 + “';return unescape(x);}”)
变_返回值 = 变_对象.文本方法 (“Run”, “xx”)
变_文本 = 编码_Unicode到Ansi_对象 (到字节集 (变_文本))
变_返回值 = 选择 (取文本长度 (变_返回值) = 0, 变_文本, 变_返回值)
变_对象.清除 ()
CoUninitialize ()
变_返回值 = 子文本替换 (变_返回值, “’”, “'”, , , 真)
返回 (子文本替换 (变_返回值, “{$}”, #换行符, , , 真))

.子程序 编码_Unicode到Ansi_对象, 文本型, , 带BOM头信息编码转换。
.参数 参_欲转换的内容, 字节集
.局部变量 变_Dx, 对象
.局部变量 变_Text, 文本型
.局部变量 变_btx, 变体型
.局部变量 变_type, 文本型

CoInitialize (0)
变_btx.赋值 (参_欲转换的内容, )
.如果真 (变_Dx.创建 (“Adodb.Stream”, ) = 假)
    返回 (“”)
.如果真结束
变_Dx.写属性 (“Type”, 1)
变_Dx.写属性 (“Mode”, 3)
变_Dx.方法 (“Open”, )
变_Dx.方法 (“Write”, 变_btx)
变_Dx.写属性 (“Position”, 0)
变_Dx.写属性 (“Type”, 2)
变_Dx.写属性 (“Charset”, “unicode”)
变_Text = 变_Dx.文本方法 (“ReadText”, )
变_Dx.方法 (“Close”, )
CoUninitialize ()
返回 (变_Text)

.子程序 __启动窗口_创建完毕

_启动窗口.左边 = 取屏幕宽度 () - _启动窗口.宽度 - 50

.子程序 __启动窗口_尺寸被改变

编辑框_输入.宽度 = _启动窗口.宽度 - 10
编辑框_输出.宽度 = _启动窗口.宽度 - 10
' 编辑框_输入.高度 = (窗口_翻译.高度 - 分组框1.高度 - 40) ÷ 2 - 10
编辑框_输出.高度 = _启动窗口.高度 - 编辑框_输入.高度 - 60
编辑框_输出.顶边 = 编辑框_输入.高度 + 15
文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有3位网友发表了看法:

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
adb模块源码GDIPlus类多线程采集YY自定义颜色内存注入模块WEBQQ登录无限加好友易包取群列表动态组件chrome浏览器数美HttpProxy极速文件分割类正态分布多功能记事本登录界面源码异或加解密微信支付SubLime Text教程
最新评论