#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include "Encoding.au3"
$hGUI = GUICreate("Google Translator", 400, 390)
GUICtrlCreateLabel("Select Translation Language:", 20, 22)
$nLangSel_Combo = GUICtrlCreateCombo("", 180, 20, 200, 50, BitOr($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
_SetTranslateLangs_Proc($nLangSel_Combo, "en - английский")
GUICtrlCreateLabel("Text to translate:", 20, 60)
$nInputText_Edit = GUICtrlCreateEdit("", 20, 80, 360, 120)
GUICtrlCreateLabel("Text to translate:", 20, 210)
$nOutputText_Edit = GUICtrlCreateEdit("", 20, 230, 360, 120, BitOr($GUI_SS_DEFAULT_EDIT, $ES_READONLY))
$nTranslate_Btn = GUICtrlCreateButton("Translate", 20, 360, 80, 20)
$nStatus_Label = GUICtrlCreateLabel("", 140, 362, 150, 30)
GUICtrlSetFont($nStatus_Label, 10, 800)
GUICtrlSetColor($nStatus_Label, 0x0000FF)
GUISetState(@SW_SHOW, $hGUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $nTranslate_Btn
GUICtrlSetState($nTranslate_Btn, $GUI_DISABLE)
GUICtrlSetData($nStatus_Label, "Please wait...")
$sText = StringReplace(GUICtrlRead($nInputText_Edit), @CRLF, " ")
$sLang = StringRegExpReplace(GUICtrlRead($nLangSel_Combo), " - .*$", "")
$sResult = BinaryToString(InetRead("http://translate.google.com/translate_t?text=" & $sText & "&hl=ru&langpair=auto|" & $sLang & "&eotf=0&tbb=1"))
$sResult = StringRegExpReplace( _
$sResult, _
'(?si).*<span (?:title=".*?" onmouseover=".*?" onmouseout=".*?|id=result_box class=".*?")>(.*?)</span>.*', _
'\1')
If _Encoding_IsUTF8Format($sResult) Then
$sResult = _Encoding_UTF8ToANSI($sResult)
EndIf
GUICtrlSetData($nOutputText_Edit, $sResult)
GUICtrlSetState($nTranslate_Btn, $GUI_ENABLE)
GUICtrlSetData($nStatus_Label, "")
EndSwitch
WEnd
Func _SetTranslateLangs_Proc($nComboID, $sDefault = "")
GUICtrlSetData($nComboID, "ru - русский|en - английский|az - азербайджанский|sq - албанский|ar - арабский|hy - армянский|af - африкаанс|eu - баскский|be - белорусский|bg - болгарский|cy - валлийский|hu - венгерский|vi - вьетнамский|gl - галисийский|nl - голландский|el - греческий|ka - грузинский|da - датский|iw - иврит|yi - идиш|id - индонезийский|ga - ирландский|is - исландский|es - испанский|it - итальянский|ca - каталанский|zh-CN - китайский|ko - корейский|ht - креольский (Гаити)|la - латынь|lv - латышский|lt - литовский|mk - македонский|ms - малайский|mt - мальтийский|de - немецкий|no - норвежский|fa - персидский|pl - польский|pt - португальский|ro - румынский|ru - русский|sr - сербский|sk - словацкий|sl - словенский|sw - суахили|tl - тагальский|th - тайский|tr - турецкий|uk - украинский|ur - урду|fi - финский|fr - французский|hi - хинди|hr - хорватский|cs - чешский|sv - шведский|et - эстонский|ja - японский|en - английский|az - азербайджанский|sq - албанский|en - английский|ar - арабский|hy - армянский|af - африкаанс|eu - баскский|be - белорусский|bg - болгарский|cy - валлийский|hu - венгерский|vi - вьетнамский|gl - галисийский|nl - голландский|el - греческий|ka - грузинский|da - датский|iw - иврит|yi - идиш|id - индонезийский|ga - ирландский|is - исландский|es - испанский|it - итальянский|ca - каталанский|zh-TW - китайский (традиционный)|zh-CN - китайский (упрощенный)|ko - корейский|ht - креольский (Гаити)|la - латынь|lv - латышский|lt - литовский|mk - македонский|ms - малайский|mt - мальтийский|de - немецкий|no - норвежский|fa - персидский|pl - польский|pt - португальский|ro - румынский|ru - русский|sr - сербский|sk - словацкий|sl - словенский|sw - суахили|tl - тагальский|th - тайский|tr - турецкий|uk - украинский|ur - урду|fi - финский|fr - французский|hi - хинди|hr - хорватский|cs - чешский|sv - шведский|et - эстонский|ja - японский", $sDefault)
EndFunc