;-=-=-=-=-=-
; DeadLy Script - TRANSLATOR
;-=-=-=-=-=-
dialog translator {
  title On-Line Translator - $sc
  size 169 183 491 259
  icon $icons(online)
  text Original text:, 1, 9 9 75 13
  text Server:, 2, 9 106 43 13
  text Translate:, 3, 205 106 87 13
  combo 301, 59 101 118 150, drop
  combo 302, 267 101 140 300, drop
  combo 303, 90 233 110 100, sort drop edit hsbar
  edit "", 501, 6 22 480 74, multi return autovs vsbar
  edit "", 502, 6 130 480 74, multi return autovs vsbar
  edit "", 503, 6 206 478 22, disabled multi return
  button &Translate, 201, 415 103 69 19
  button &Say to, 202, 35 233 52 19, flat
  button Clea&r, 203, 243 233 102 19
  button &Close, 204, 359 233 102 19, cancel
}
on 1:dialog:translator:*:*: {
  if $devent = init { init6 }
  if $devent = sclick {
    if $did = 201 { %trad.id = $did(translator,301).sel
      if !$did(501) { echo -ea $style2 Enter a text to translate. | halt }
      trad.lan 
      trad.id $+ %trad.id
      translate $replace($did(translator,3),$chr(32),$chr(43),$chr(44),$chr(37) $+ 2C,$chr(191),$chr(37) $+ BF,$chr(63),$chr(37) $+ 3F,$chr(40),$chr(37) $+ 28,$chr(41),$chr(37) $+ 29) 
      did -r translator 501
      did -ra translator 503 >> Sending text to translate...
    } 
    if $did = 202 { msg $did(translator,303).seltext $did(translator,502) } 
    if $did = 203 { did -r translator 501,502,503 } 
    if $did = 301 { %trad.id = $did(translator,301).sel | trad.lan }
  }
  if $devent = close {
    unset %trad.id %trans.lang %trans.host %trans.port %trad.url %trans.ex %trans.suma %trans.words %trans.word %trad.lan %trad.td 
    .remove translate.txt | unloads translator 
  }
}

on 1:sockopen:translator: { 
  if ($sockerr > 0) { 
    did -ra translator 503  Unable to connect
    return 
  } 
  did -ra translator 503 $str($chr(215),2) Sending text to translate... 
  sockwrite -n $sockname GET / $+ %trad.url HTTP/1.0 
  sockwrite -n $sockname Accept: */* 
  sockwrite -n $sockname Host: %trans.host 
  sockwrite -n $sockname $crlf 
}
on 1:sockread:translator: { sockread %trans.text | write trans.txt %trans.text | unset %trans.text }
on 1:sockclose:translator: { 
  did -ra translator 503  Receiving translation.... 
  write trans.txt </html> 
  trad.td $+ %trad.id 
  if (%trad.id != 3) {
    unset %trad.lan %trans.wor* %trad.td %ztrans.host %trans.port %ztrad.url %trans.ex %trans.es %trans.suma
  } 
  .remove trans.txt 
}

alias translate {
  sockclose translator
  write -c translate.txt 
  if $1 { 
    unset %trans.wor* 
    %trans = 1 
    :p
    %tmp = $did(translator,501,%trans) 
    if %tmp {
      %trans.words = $addtok(%trans.words,%tmp,32)
      inc %trans 
      goto p
    } 
    else { 
      if (%trad.id = 1) { %trans.word = $tradra(%trans.words) }
      else {
        %trans.word = $replace(%trans.words,$chr(32),$chr(43),$chr(44),$chr(37) $+ 2C,$chr(191),$chr(37) $+ BF,$chr(63),$chr(37) $+ 3F,$chr(40),$chr(37) $+ 28,$chr(41),$chr(37) $+ 29,$chr(225),$chr(37) $+ E1,$chr(233),$chr(37) $+ E9,$chr(237),$chr(37) $+ ED,$chr(243),$chr(37) $+ F3,$chr(250),$chr(37) $+ FA)  
      }
      unset %trans %tmp 
    } 
    trad.id [ $+ [ %trad.id ] ] 
    sockopen translator %trans.host %trans.port 
  } 
}
alias trad.lan {
  if (%trad.id = 1) {
    var %tmp = $gettok($did(translator,302),1,32)
    var %tmp2 = $gettok($did(translator,302),3,32)
    %trans.lang = %tmp $+ _ $+ %tmp2
  }
  elseif (%trad.id = 2) || (%trad.id = 3) {
    var %tmp = $gettok($did(translator,302),1,32)
    var %tmp2 = $gettok($did(translator,302),3,32)
    %trad.lan = %tmp $+ $chr(37) $+ 2F $+ %tmp2
  }
}
alias trad.id1 {
  %trans.host = world.altavista.com 
  %trans.port = 80 
  %trad.url = tr?doit=done&tt=urltext&urltext= $+ %trans.word $+ &url=http%3A%2F%2F&lp= $+ %trad.lan 
  %trans.ex = name="q" 
  %trans.ex2 = padding:10px
  %trans.suma = 0 
}
alias trad.id2 { 
  %trans.host = ets.freetranslation.com 
  %trans.port = 5081 
  %trad.url = ?Sequence=core&Mode=html&template=TextResults2.htm&Language= $+ %trad.lan $+ &SrcText= $+ %trans.word 
  %trans.ex = target="_new"
  %trans.suma = 3
}
alias trad.id3 { 
  %trans.host = tradu.scig.uniovi.es 
  %trans.port = 80 
  %trad.url = texto.cgi?lang= $+ %trad.lan $+ &text= $+ %trans.word 
  %trans.ex = <I> 
  %trans.suma = 0 
}

alias trad.td1 { 
  %trad.td = 1 
  :p 
  if (</html> !isin $read(trans.txt,%trad.td)) {
    var %tmpp = $read(trans.txt,%trad.td)
    if (%trans.ex !isin %tmpp) && (%trans.ex2 !isin %tmpp) { 
      write -dl $+ %trad.td trans.txt 
      goto p
    }
  } 
  ;  did -ra translator 302 $chr(32) 
  did -ra translator 502 $chr(32) 
  if (%trans.ex isin $read(trans.txt,%trad.td)) { 
    did -a translator 502 $tradr($remove($read(trans.txt,$calc(%trad.td + %trans.suma)),<td class="gris3mini",bgcolor="e0e0e0">,<b>,</b>,</td>,<textarea,rows="3",wrap=virtual,cols="56",name="q">,<td,bgcolor=white>,<tr>,class=s><input,type=hidden,name="q",value=)) 
    did -ra translator 503 Translation Complete...
  }
  elseif (%trans.ex2 isin $read(trans.txt,%trad.td)) { 
    did -a translator 502 $tradr($remove($read(trans.txt,$calc(%trad.td + %trans.suma)),<tr>,<td bgcolor=white,class=s>,<Div,style=padding:10px;>)) 
    did -ra translator 503 Translation Complete...
  }
  else { 
    did -a translator 503 Unable to connect, select another server
  } 
}
alias trad.td2 { 
  set %trad.td 1 
  :p 
  if (</html> !isin $read(trans.txt,%trad.td)) { 
    if (%trans.ex !isin $read(trans.txt,%trad.td)) { 
      write -dl $+ %trad.td trans.txt 
      goto p
    }
  } 
  did -ra translator 502 $tradr($remove($read(trans.txt,$calc(%trad.td + %trans.suma)),						,<textarea,name="textfield",cols="35",rows="12",style="width: 350",wrap="virtual",class="bodyText">,</textarea>))
  did -ra translator 503 Translation Complete...
}
alias trad.td3 { 
  %trad.td = 1 
  :p 
  if (</html> !isin $read(trans.txt,%trad.td)) { 
    if (%trans.ex !isin $read(trans.txt,%trad.td)) {
      write -dl $+ %trad.td trans.txt 
      goto p
    } 
  } 
  did -ra translator 502 $chr(32) 
  did -a translator 502 $remove($read(trans.txt,$calc(%trad.td + %trans.suma)),<i>,</i>,$chr(9)) 
}

alias tradr { return $replace($1,,,,,,,,,,,,,,,,,,,,) }
alias tradra { return $replace($1,,,,,,ç,,ç,,ã,,ã,,ó,,ó,,ô,,ô,,ü,,ü,,ê,,ê,,,,,,õ,,õ,,á,,á,,ú,,ú,$chr(32),$chr(43),,é,,é) }

;-=-=-=-=-=-
;-=-=-=-=-=-
