on *:TEXT:*:#:{ if ($language($right($1,$calc($len($1) - 1)))) { set %trans.dest $iif($left($1,1) == @,msg $chan,notice $nick) if (!$2) { %trans.dest Sorry, you didn't specify a word to translate. | halt } set %trans.input $replace($lower($2-),$chr(32),+) set %trans.language $language($right($1,$calc($len($1) - 1))) sockopen $+(tran.,%trans.language) ets.freetranslation.com 80 } } alias -l language { if ($regex($1,/^span(ish)?$/Si)) return spanish elseif ($regex($1,/^fr(ench)?$/Si)) return french elseif ($regex($1,/^germ(an)?$/Si)) return german elseif ($regex($1,/^it(al|alian)?$/Si)) return italian elseif ($regex($1,/^du(tch)?$/Si)) return dutch elseif ($regex($1,/^Port(uguese)?$/Si)) return portuguese elseif ($regex($1,/^Nor(wegian)?$/Si)) return norwegian } on *:SOCKOPEN:tran.*:{ sockwrite -n $sockname GET /?srcText= $+ %trans.input $+ &mode=html&template=results_en-us.htm&sequence=core&language=English%2F $+ %trans.language HTTP/1.1 sockwrite -n $sockname Host: ets.freetranslation.com $+ $crlf $+ $crlf } on *:SOCKREAD:tran.*:{ if ($sockerr) { %trans.dest $sockerror | sockclose tran. [ $+ [ %trans.language ] ] } var %result | sockread -f %result set %trans.result $remove($htmlfree(%result),$chr(9)) if (*writetoolbar* iswm %trans.result) { sockread -f %trans.result | sockread -f %trans.result if ($+($remove($htmlfree(%trans.result),$chr(9))) == %trans.input) { %trans.dest Sorry, there was no results for the word(s) $+($replace(%trans.input,+,$chr(32)),.) | sockclose $sockname | halt } if ($+($remove($htmlfree(%trans.result),$chr(9))) == shItalian to EnglishDutch to EnglishPortuguese to EnglishRussian to EnglishJapanese to English) { %trans.dest Sorry, there was no results for the word(s) $+($replace(%trans.input,+,$chr(32)),.) | sockclose $sockname | halt } %trans.dest %trans.language Translation for $+($replace(%trans.input,+,$chr(32)),:) $+(,$remove($htmlfree(%trans.result),$chr(9)),) sockclose $sockname | unset %trans.* | halt } } on *:sockclose:tran.*:{ unset %trans.* } alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) return %x }