Try this translator that I made (with a bit of assistance from FiberOPtics):

Code:
alias babel {
  if (!$1) {
    echo -a Syntax: /babel <words to translate here, max 700 chars>
    return
  }

  set %babel $left($1-,700)
  if ($sock(babel)) sockclose babel
  sockopen babel world.altavista.com 80
  if ($sockerr) babelfail
  .timerbabel 1 30 babelfail
}

alias babelfail {
  echo -a Error: Unable to connect to babelfish
  .timerbabel off
  unset %babel
  sockclose babel
}

on *:SOCKOPEN:babel:{
  if ($sockerr) {
    babelfail
    return
  }
  if (!%babel) {
    sockclose babel
    echo -a Error: No text to translate
    return
  }

  var %babelu = %babel
  %babelu = $replace(%babelu,%,% $+ 25)
  while ($regex(babel,%babelu,/([^% \w])/Sg)) {
    var %babelu = $replace(%babelu,$regml(babel,1),% $+ $base($asc($regml(babel,1)),10,16))
    if ($calc($len(%babelu) $+ 2) > 800) break
  }

  var %type = en_fr
  var %data = doit=done&intl=1&tt=urltext&trtext= $+ $replace(%babelu,$chr(32),+) $+ &lp= $+ %type $+ &btnTrTxt=Translate
  var %write = sockwrite -tn $sockname

  %write POST /tr HTTP/1.1
  %write Referer: http://world.altavista.com/tr
  %write Content-Type: application/x-www-form-urlencoded
  %write Host: world.altavista.com
  %write Content-Length: $len(%data)
  %write Connection: close
  %write
  %write %data
}

on *:SOCKCLOSE:babel:{
  echo -s Error: Babelfish closed the connection
  .timerbabel off
  unset %babel
}

on *:SOCKREAD:babel:{
  var %sread
  sockread %sread

  if (%babelcontinue) %babelt = %babelt %sread

  var %regex = /<td bgcolor=white class=s><div style=padding:10px;>(.+)$/Si
  if ($regex(babel,%sread,%regex)) {
    set %babelt $regml(babel,1)
    set %babelcontinue 1
  }

  var %regex = /(.+)<\/div><\/td>/Si
  if ($regex(babelb,%babelt,%regex)) {
    set %babelt $regml(babelb,1)
    set %babelcontinue 0
    var %babeldone 1
  }

  if (%babeldone) {
    echo 4 -a " $+ %babel $+ " 
    echo -a ...translates to...
    echo 4 -a " $+ %babelt $+ "
    .timerbabel off
    unset %babel*
    sockclose $sockname
  }
}


This should translate everything you enter, up to 700 characters. If there are a lot of non-alnum characters in the message (each of which is replaced by 3 characters), the message will be truncated at 800 characters to prevent variable overflow.

The usage is: /babel Your message goes here.

-genius_at_work

Last edited by genius_at_work; 26/12/05 02:26 AM.