All pastes #719818 Raw Edit

Something

public text v1 · immutable
#719818 ·published 2007-09-29 17:47 UTC
rendered paste body
menu * {
  Translator:dialog -mo tl tl
}

dialog tl {
  option dbu
  title "Translator made by Patje"
  size -1 -1 250 100
  menu &File,1
  item &Close,2
  check "Always on top",6,5 5 50 7
  edit "Thank you for using Patje's Translator.",10,5 15 240 50,multi
  text "Language:",11,8 70 25 7
  combo 12,35 68 100 7,drop
  button "Translate",13,145 68 35 11
  edit "",14,5 85 240 10
}

on *:DIALOG:tl:INIT:*:{
  did -a $dname 12 Chinese - English
  did -a $dname 12 English - Chinese
  did -a $dname 12 English - Dutch
  did -a $dname 12 English - French
  did -a $dname 12 English - German
  did -a $dname 12 English - Greek
  did -a $dname 12 English - Italian
  did -a $dname 12 English - Japanese
  did -a $dname 12 English - Korean
  did -a $dname 12 English - Portuguese
  did -a $dname 12 English - Russian
  did -a $dname 12 English - Spanish
  did -a $dname 12 Dutch - English
  did -a $dname 12 Dutch - French
  did -a $dname 12 French - Dutch
  did -a $dname 12 French - English
  did -a $dname 12 French - Greek
  did -a $dname 12 French - Italian
  did -a $dname 12 French - Portuguese
  did -a $dname 12 French - Spanish
  did -a $dname 12 German - English
  did -a $dname 12 German - French
  did -a $dname 12 Greek - English
  did -a $dname 12 Greek - French
  did -a $dname 12 Italian - English
  did -a $dname 12 Italian - French
  did -a $dname 12 Japanese - English
  did -a $dname 12 Korean - English
  did -a $dname 12 Portuguese - English
  did -a $dname 12 Portuguese - French
  did -a $dname 12 Russian - English
  did -a $dname 12 Spanish - English
  did -a $dname 12 Spanish - French
}

on *:DIALOG:tl:MENU:2:{
  dialog -x $dname
}

on *:DIALOG:tl:SCLICK:*:{
  if ($did == 6) {
    tokenize 32 %tl
    if ($did(6).state) {
      dialog -o $dname
    }
    else {
      dialog -n $dname
    }
  }
  elseif ($did == 13) {
    inc %sc
    hadd -m ts_ $+ %sc language $gettok(zt_en en_zt en_nl en_fr en_de en_el en_it en_ja en_ko en_pt en_ru en_es nl_en nl_fr fr_nl fr_en fr_el fr_it fr_pt fr_es de_en de_fr el_en el_fr it_en it_fr ja_en ko_en pt_en pt_fr ru_en es_en es_fr,$did(12).sel,32)
    var %c 1
    while (%c <= $did(10).lines) {
      hadd -m ts_ $+ %sc string $hget(ts_ $+ %sc,string) $+ $urlencode($did(10,%c)) $+ % $+ 0A%0D
      inc %c
    }
    sockopen ts_ $+ %sc world.altavista.com 80
  }
}

on *:SOCKOPEN:ts_*:{
  var %data doit=done&intl=1&tt=urltext&trtext= $+ $left($hget($sockname,string),-6) $+ &lp= $+ $hget($sockname,language) $+ &btnTrTxt=Vertaal
  sockwrite -nt $sockname POST /tr HTTP/1.1
  sockwrite -nt $sockname Host: world.altavista.com
  sockwrite -nt $sockname Content-Type: application/x-www-form-urlencoded
  sockwrite -nt $sockname Content-Length: $len(%data)
  sockwrite -nt $sockname $crlf %data
}

on *:SOCKREAD:ts_*:{
  var %sc
  sockread %sc
  if (<div style=padding:10px;> isin %sc) {
    did -ra tl 14 $mid(%sc,57,-11)
  }
}

alias urlencode return $regsubex($1-,/([^\w\s]|\x20)/Sg,$+(%,$base($asc(\1),10,16,2)))