au3做的实时翻译[数据来源于谷歌]
做这个小工具的目的主要是来方便自己学习时用的。也供献给像我这样,e文不会的朋友用用吧,这样用到那些英文函数时,也不用那么看的辛苦。。BUG呢,难免会有,对希望对正则比较厉害的大拿们,能不能帮手直接写个取谷歌翻译结果的正则出来呀。
我这个小程序,通过了我的php程序中转出来的谷歌翻译结果。用有这外php有结果。
au3程序>------------>php程序(这里取谷歌结果)<-------->谷歌翻译
我要想要把php程序这段不要,要直接取,但看到谷歌,看到到头晕。 谢谢!
=================================================
哎,这个这好用的小工具,没有人欣赏呢。
我反正是用来翻译函数不错,在au3中取英文字段也不错。 不错,我正想的一件事------整段英语翻译,并且有语言选择. 点保存,可自动保存.
但技术有限. 还需要时日. 回复 3# nbmpe
这个只能英汉互译,主要是来方便自己翻译词来的。
你说的那样,就要重写规则的了,去看谷歌的在线翻译。查它源码去研究吧。 这个PHP我不懂.看来做这个暂时技术还达不到,
这几天在研究音频.显示波形.小有成就
但录音.显示波形还没搞定. 有创意,不知道怎么取 好样的,学习了 我以前也写过一个,自用的,功能很简单,就没发出来,借楼主宝地发给大家看看有没值得学习地方
把代码直接贴出来吧,免得下载浪费时间
#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
回复 9# bob
真是好东西, 长见识了。这么简单就可以~哈哈 我以前也写过一个,自用的,功能很简单,就没发出来,借楼主宝地发给大家看看有没值得学习地方
bob 发表于 2010-12-25 17:22 http://www.autoitx.com/images/common/back.gif
谷歌翻译页面改版了的,不知这个更新了没有..... 回复 9# bob
源码收下了,谢谢!!!!!!!!! 谢谢!!!!!!!!! thanks for sharing~~~ 很好的想法
页:
[1]
2