绿色风 发表于 2010-11-19 13:30:53

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

做这个小工具的目的主要是来方便自己学习时用的。也供献给像我这样,e文不会的朋友用用吧,这样用到那些英文函数时,也不用那么看的辛苦。。
BUG呢,难免会有,对希望对正则比较厉害的大拿们,能不能帮手直接写个取谷歌翻译结果的正则出来呀。

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

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

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


绿色风 发表于 2010-11-22 00:16:01

哎,这个这好用的小工具,没有人欣赏呢。


我反正是用来翻译函数不错,在au3中取英文字段也不错。

nbmpe 发表于 2010-11-23 08:52:43

不错,我正想的一件事------整段英语翻译,并且有语言选择. 点保存,可自动保存.
但技术有限. 还需要时日.

绿色风 发表于 2010-11-23 09:49:25

回复 3# nbmpe
这个只能英汉互译,主要是来方便自己翻译词来的。

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

nbmpe 发表于 2010-11-23 12:02:12

这个PHP我不懂.看来做这个暂时技术还达不到,
这几天在研究音频.显示波形.小有成就
但录音.显示波形还没搞定.

漫反射 发表于 2010-11-24 14:05:36

有创意,不知道怎么取

FlyAuto 发表于 2010-11-26 12:12:27

好样的,学习了

bob 发表于 2010-12-25 17:22:57

我以前也写过一个,自用的,功能很简单,就没发出来,借楼主宝地发给大家看看有没值得学习地方


bob 发表于 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

chenronting 发表于 2010-12-25 17:54:43

回复 9# bob


    真是好东西, 长见识了。这么简单就可以~哈哈

131738 发表于 2010-12-26 01:12:08

我以前也写过一个,自用的,功能很简单,就没发出来,借楼主宝地发给大家看看有没值得学习地方
bob 发表于 2010-12-25 17:22 http://www.autoitx.com/images/common/back.gif

谷歌翻译页面改版了的,不知这个更新了没有.....

131738 发表于 2010-12-26 01:12:50

回复 9# bob
源码收下了,谢谢!!!!!!!!!

weeks1 发表于 2010-12-26 08:35:36

谢谢!!!!!!!!!

chinafla 发表于 2010-12-28 12:19:01

thanks for sharing~~~

libosir 发表于 2011-1-18 00:59:15

很好的想法
页: [1] 2
查看完整版本: au3做的实时翻译[数据来源于谷歌]