#!/bin/sh
# restart using tclsh \
exec tclsh "$0" "$@"

package require http
proc syntax {args} {
puts "Syntax: ./translator <fromlang> <tolang> <text>"
exit;
}

if {$argc < 3} { syntax;exit }
set froml [string tolower [lindex $argv 0]]
set tol [string tolower [lindex $argv 1]]
set text [lrange $argv 2 end]

if {$froml == "english"} {
 if {$tol == "french"} { set lp en_fr }
 if {$tol == "german"} { set lp en_de }
 if {$tol == "italian"} { set lp en_it }
 if {$tol == "portuguese"} { set lp en_pt }
 if {$tol == "spanish"} { set lp en_es }
}
if {$froml != "english"} {
 if {$froml == "french"} { set lp fr_en }
 if {$froml == "german"} { set lp de_en }
 if {$froml == "italian"} { set lp it_en }
 if {$froml == "portuguese"} { set lp pt_en }
 if {$froml == "spanish"} { set lp es_en }                       
}

if {![info exists lp]} { puts "One of the lang's is invalid one has to be english and the others can be french,german,italian,portuguese and spanish."; exit }
#puts "Trying to translate '[join $text]' from '$froml' to '$tol'"
eval set query \[::http::formatQuery doit \{done\} urltext \{[join $text]\} lp \{$lp\}\]
set mytoken [::http::geturl http://babelfish.altavista.com/cgi-bin/translate? -query $query -blocksize 1024]
set pdata [::http::data $mytoken]
set pdata [string range $pdata [expr [string first {<td align="left"><br>} $pdata]+53] [expr [string first "<br><br></font></td></tr>" $pdata]-1]]
puts [join $pdata]
