on $*:text:/[!@](translate|tl)/Si:#:{ var %u = 1 while ($sock(translator [ $+ [ %u ] ] )) { inc %u } if ($left($1,1) == !) /set %disp.translate [ $+ [ %u ] ] notice $nick if ($left($1,1) == @) /set %disp.translate [ $+ [ %u ] ] msg $chan if ($2 == info) { %disp.translate [ $+ [ %u ] ] $c1 The trigger is: $c2 [!@]tl Sp|Fr|Ge|It|Du|Po|En Sp|Fr|Ge|It|Du|Po|En message. $c1 For example: @tl en du This is just a test! unset %disp.translate [ $+ [ %u ] ] halt } if ($regex($2,/(En|Sp|Fr|Ge|It|Du|Po)/Si) != 0) { set %from [ $+ [ %u ] ] $replace($2,en,English,sp,Spanish,fr,French,ge,German,it,Italian,du,Dutch,po,Portuguese) } else { %disp.translate [ $+ [ %u ] ] $c2 Error: $c1 These languages can't be translated! unset %disp.translate [ $+ [ %u ] ] halt } if (%from [ $+ [ %u ] ] != english) { if ($regex($3,/(Sp|Fr|Ge|It|Du|Po)/Si) != 0) { %disp.translate [ $+ [ %u ] ] $c1 When the language to translate from is $c2 NOT English $c1 $+ , the language to translate to $c2 $+ MUST $+ $c1 be $c2 $+ English! halt } elseif ($3 == en) set %to [ $+ [ %u ] ] english } elseif (%from [ $+ [ %u ] ] == english) { if ($regex($3,/(En|Sp|Fr|Ge|It|Du|Po)/Si) != 0) { set %to [ $+ [ %u ] ] $replace($3,en,English,sp,Spanish,fr,French,ge,German,it,Italian,du,Dutch,po,Portuguese) } } set %message [ $+ [ %u ] ] $replace($4-,$chr(32),+) sockopen translator [ $+ [ %u ] ] ets.freetranslation.com 80 } on *:sockopen:translator*:{ var %x = $right($sockname,-10) sockwrite -nt $sockname GET ?srcText= $+ [ %message [ $+ [ %x ] ] $+ ] &mode=html&template=results_en-us.htm&sequence=core&language= [ $+ [ %from [ $+ [ %x ] ] ] ] $+ $chr(37) $+ 2F [ $+ [ %to [ $+ [ %x ] ] ] ] HTTP/1.1 sockwrite -nt $sockname Host: ets.freetranslation.com sockwrite -nt $sockname $crlf } on *:sockread:translator*:{ var %z = $right($sockname,-10) if ($sockerr) { %disp.translate [ $+ [ %z ] ] An error returned. Please inform $me of this! halt } else { var %sockread sockread %sockread if ( *