找回密码
 加入
搜索
查看: 11677|回复: 24

[原创] au3做的实时翻译[数据来源于谷歌]

 火... [复制链接]
发表于 2010-11-19 13:30:53 | 显示全部楼层 |阅读模式
做这个小工具的目的主要是来方便自己学习时用的。也供献给像我这样,e文不会的朋友用用吧,这样用到那些英文函数时,也不用那么看的辛苦。。
BUG呢,难免会有,对希望对正则比较厉害的大拿们,能不能帮手直接写个取谷歌翻译结果的正则出来呀。

我这个小程序,通过了我的php程序中转出来的谷歌翻译结果。用有这外php有结果。

au3程序>------------>php程序(这里取谷歌结果)<-------->谷歌翻译

我要想要把  php程序  这段不要,要直接取,但看到谷歌,看到到头晕。 谢谢!
=================================================


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 2金钱 +300 贡献 +5 收起 理由
tryhi + 280 + 5 有创意
漫反射 + 20

查看全部评分

 楼主| 发表于 2010-11-22 00:16:01 | 显示全部楼层
哎,这个这好用的小工具,没有人欣赏呢。


我反正是用来翻译函数不错,在au3中取英文字段也不错。
发表于 2010-11-23 08:52:43 | 显示全部楼层
不错,我正想的一件事------整段英语翻译,并且有语言选择. 点保存,可自动保存.
但技术有限. 还需要时日.
 楼主| 发表于 2010-11-23 09:49:25 | 显示全部楼层
回复 3# nbmpe
这个只能英汉互译,主要是来方便自己翻译词来的。

你说的那样,就要重写规则的了,去看谷歌的在线翻译。查它源码去研究吧。

评分

参与人数 1金钱 +90 贡献 +20 收起 理由
漫反射 + 90 + 20

查看全部评分

发表于 2010-11-23 12:02:12 | 显示全部楼层
这个PHP我不懂.看来做这个暂时技术还达不到,
这几天在研究音频.显示波形.小有成就
但录音.显示波形还没搞定.
发表于 2010-11-24 14:05:36 | 显示全部楼层
有创意,不知道怎么取
发表于 2010-11-26 12:12:27 | 显示全部楼层
好样的,学习了
发表于 2010-12-25 17:22:57 | 显示全部楼层
我以前也写过一个,自用的,功能很简单,就没发出来,借楼主宝地发给大家看看有没值得学习地方


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-12-25 17:25:31 | 显示全部楼层
把代码直接贴出来吧,免得下载浪费时间

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1) ;GUI事件响应模式
HotKeySet("{ENTER}", "_translate")
HotKeySet("{F1} ", "_empty")
HotKeySet("{F3} ", "_change")
Global $TranValue, $flag
$flag = "en%7Czh-CN"

$Form = GUICreate("Google 英汉互译工具 V0.1 - 20091025", 420, 252)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 404, 100, 0x0004)
GUICtrlSetData(-1, "")
$Label = GUICtrlCreateLabel("英译汉", 8, 116, 60, 20)
GUICtrlSetFont(-1, 15)
GUICtrlSetColor(-1, 0xff0000)
GUICtrlCreateLabel("鼠标左键或回车键确认查询;鼠标右键或F3键切换语言;F1清空", 76, 120, 340, 20)
$Edit2 = GUICtrlCreateEdit("", 8, 144, 404, 100, 0x0004)
GUICtrlSetData(-1, "")
GUISetState(@SW_SHOW)

GUISetOnEvent($GUI_EVENT_CLOSE, "Gui")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "Gui")
GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, "Gui")

While 1
        Sleep(100)
WEnd

Func Gui()
        Switch @GUI_CtrlId
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $GUI_EVENT_PRIMARYDOWN ;鼠标主要按钮按下,即左键按下
                        If GUICtrlRead($Edit1) <> "" Then _translate()
                Case $GUI_EVENT_SECONDARYDOWN ;鼠标次要按钮按下,即右键按下
                        _change()
        EndSwitch
EndFunc   ;==>Gui

Func _translate()
        $xmlhttp = ObjCreate("Msxml2.XMLHTTP");
        $xmlhttp.open("GET", "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" & _UnicodeURLEncode(GUICtrlRead($Edit1)) & "&langpair=" & $flag, False)
        $xmlhttp.Send
        $result = StringTrimLeft($xmlhttp.responseText, 36)
        $result = StringTrimRight($result, 51)
        GUICtrlSetData($Edit2, $result)
EndFunc   ;==>_translate

Func _empty()
        GUICtrlSetData($Edit1, "")
        GUICtrlSetData($Edit2, "")
        GUICtrlSetState($Edit1,$GUI_FOCUS)
EndFunc        ;==>_empty

Func _change()
        If GUICtrlRead($Label) = "英译汉" Then
                GUICtrlSetData($Label, "汉译英")
                GUICtrlSetColor($Label, 0x0000ff)
                $flag = "zh-CN%7Cen"
        Else
                GUICtrlSetData($Label, "英译汉")
                GUICtrlSetColor($Label, 0xff0000)
                $flag = "en%7Czh-CN"
        EndIf
EndFunc        ;==>_change                

Func _UnicodeURLEncode($UnicodeURL) ;==>_UnicodeURLEncode
        Local $UnicodeBinaryLength, $UnicodeBinary, $UnicodeBinary2
        $UnicodeBinary = StringToBinary($UnicodeURL, 4)
        $UnicodeBinary2 = StringReplace($UnicodeBinary, '0x', '', 1)
        $UnicodeBinaryLength = StringLen($UnicodeBinary2)
        Local $EncodedString, $UnicodeBinaryChar, $EncodedString
        For $i = 1 To $UnicodeBinaryLength Step 2
                $UnicodeBinaryChar = StringMid($UnicodeBinary2, $i, 2)
                If StringInStr("$-_.+!*'(),;/?:@=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", BinaryToString('0x' & $UnicodeBinaryChar, 4)) Then
                        $EncodedString &= BinaryToString('0x' & $UnicodeBinaryChar)
                Else
                        $EncodedString &= '%' & $UnicodeBinaryChar
                EndIf
        Next
        Return $EncodedString
EndFunc   ;==>_UnicodeURLEncode

评分

参与人数 3金钱 +40 贡献 +6 收起 理由
annybaby + 10 感谢前辈的无私奉献~~
lynfr8 + 5 学习了
绿色风 + 30 + 1

查看全部评分

发表于 2010-12-25 17:54:43 | 显示全部楼层
回复 9# bob


    真是好东西, 长见识了。这么简单就可以~哈哈
发表于 2010-12-26 01:12:08 | 显示全部楼层
我以前也写过一个,自用的,功能很简单,就没发出来,借楼主宝地发给大家看看有没值得学习地方
bob 发表于 2010-12-25 17:22


谷歌翻译页面改版了的,不知这个更新了没有.....
发表于 2010-12-26 01:12:50 | 显示全部楼层
回复 9# bob
源码收下了,谢谢!!!!!!!!!
发表于 2010-12-26 08:35:36 | 显示全部楼层
谢谢!!!!!!!!!
发表于 2010-12-28 12:19:01 | 显示全部楼层
thanks for sharing~~~
发表于 2011-1-18 00:59:15 | 显示全部楼层
很好的想法
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-29 07:44 , Processed in 0.094074 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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