on *:TEXT:*:#:{
if ($language($right($1,$calc($len($1) - 1)))) {
if (!$2) { %trans.dest Sorry, you didn't specify a word to translate. | halt }
set %trans.dest $iif($left($1,1) == @,msg $chan,notice $nick)
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
}