Traducteur en socket basé sur systranlinks

Contenu du snippet

il suffi d'entrer le remote dans votre remote
puis tapper : /trans

Source / Exemple :


on 1:LOAD: {
  set %traduction en_nl nl_en en_ja ja_en en_ko ko_en en_zh zh_en en_zt zt_en en_ru ru_en en_es es_en en_fr fr_en en_de de_en en_it it_en en_pt pt_en fr_nl nl_fr fr_es es_fr fr_en en_fr fr_de de_fr fr_pt pt_fr fr_it it_fr
}

alias trans {
  if $dialog(trans) { dialog -v trans }
  else { dialog -m trans trans }
}
dialog trans {
  title "Traducteur By BeZaZu"
  icon G/trans.ico
  size -1 -1 200 148
  option dbu
  button "Fermer", 1000, 131 139 45 9, flat cancel
  button "traduire", 1001, 76 139 45 9, flat
  button "effacer", 1002, 21 139 45 9, flat
  box "", 1, 0 -2 200 70
  text "Text source en :", 2, 2 7 40 8
  combo 3, 45 6 60 60, drop
  edit "", 4, 3 20 194 40, multi return autovs vsbar
  box "", 11, 0 67 200 70
  text "traduire en :", 12, 2 76 40 8
  combo 13, 45 75 60 60, drop
  edit "", 14, 3 89 194 40, multi return autovs vsbar
  text "Temp écoulé:", 20, 5 214 60 7
  text "", 21, 40 214 30 7
}
on *:dialog:trans:sclick:1002:{
  did -r trans 14,4
}
on *:dialog:trans:init:0: {
  .timerbande -m 0 100 bande
  did -ca trans 3 Francais
  did -a trans 13 Francais
  did -a trans 3 Anglais
  did -ca trans 13 Anglais
  did -a trans 3 Allemand
  did -a trans 13 Allemand
  did -a trans 3 Hollandais
  did -a trans 13 Hollandais
  did -a trans 3 Japonais
  did -a trans 13 Japonais
  did -a trans 3 Coréen
  did -a trans 13 Coréen
  did -a trans 3 Chinois
  did -a trans 13 Chinois
  did -a trans 3 Italien
  did -a trans 13 Italien
  did -a trans 3 Espagnol
  did -a trans 13 Espagnol
  did -a trans 3 Portugais
  did -a trans 13 Portugais
  did -a trans 3 Russe
  did -a trans 13 Russe
  did -ra trans 21 n/a
}
on *:dialog:trans:sclick:1000: {
  .timerbande off
}
on *:dialog:trans:sclick:1001: {
  did -r trans 14
  var %traduction en_nl nl_en en_ja ja_en en_ko ko_en en_zh zh_en en_zt zt_en en_ru ru_en en_es es_en en_fr fr_en en_de de_en en_it it_en en_pt pt_en fr_nl nl_fr fr_es es_fr fr_en en_fr fr_de de_fr fr_pt pt_fr fr_it it_fr
  if $did(trans,3) == $did(trans,13) { var %temp = $input(Vous devez choisir 2 langues diférentes.,260,Erreur) | return }
  if $did(trans,4) == $null { var %temp = $input(Tappez votre text dans la premiere zone de texte.,260,Erreur) | return }
  if $did(trans,3) == Francais { set %langue1 fr }
  if $did(trans,13) == Francais { set %langue2 fr }
  if $did(trans,3) ==  Anglais { set %langue1 en }
  if $did(trans,13) == Anglais { set %langue2 en }
  if $did(trans,3) ==  Allemand { set %langue1 de }
  if $did(trans,13) == Allemand { set %langue2 de }
  if $did(trans,3) ==  Hollandais { set %langue1 nl }
  if $did(trans,13) == Hollandais { set %langue2 nl }
  if $did(trans,3) ==  Japonais { set %langue1 ja }
  if $did(trans,13) == Japonais { set %langue2 ja }
  if $did(trans,3) ==  Koréen { set %langue1 ko }
  if $did(trans,13) == Koréen { set %langue2 ko }
  if $did(trans,3) ==  Chinoi { set %langue1 zh }
  if $did(trans,13) == Chinoi { set %langue2 zh }
  if $did(trans,3) ==  Italien { set %langue1 it }
  if $did(trans,13) == Italien { set %langue2 it }
  if $did(trans,3) ==  Espagnole { set %langue1 es }
  if $did(trans,13) == Espagnole { set %langue2 es }
  if $did(trans,3) ==  Portugais { set %langue1 pt }
  if $did(trans,13) == Portugais { set %langue2 pt }
  if $did(trans,3) ==  Russe { set %langue1 ru }
  if $did(trans,13) == Russe { set %langue2 ru }
  set %temp $ctime
  unset %trans
  var %numligne 1
  while %numligne <= $did(trans,4).lines {
    set %trans %trans $did(trans,4,%numligne) 
    inc %numligne
    /rech
  }
  unset %traduct
  sockopen translate www.systranlinks.com 80
}
on *:sockopen:translate:{
  if ($sockerr) { echo -a Connexion impossible | return }
  if %langue1 $+ _ $+ %langue2 isin %traduction { set %translate 1 | Sockwrite -nt translate GET /systran/cgi?lp= $+ %langue1 $+ _ $+ %langue2 $+ &partner=demo-SystranSoft-fr&urltext= $+ $replace(%trans,$chr(32),$chr(37) $+ 20) }
  else { set %translate 1 | Sockwrite -nt translate GET /systran/cgi?lp= $+ %langue1 $+ _en&partner=demo-SystranSoft-fr&urltext= $+ $replace(%trans,$chr(32),$chr(37) $+ 20) }
}

on *:sockread:translate:{
  did -r trans 14
  sockread %result
  if %translate >= 154 {
    if %langue1 $+ _ $+ %langue2 isin %traduction {
      set %traduct %traduct %result
      if </textarea> isin %result { sockclose translate | did -a trans 14 $traite | did -ra trans 21 $duration($calc($ctime - %temp)) | return }
    }
    else {
      set %traduct %traduct %result
      if </textarea> isin %result { sockclose translate | set %langue1 en | set %trans $traite | unset %traduct | sockopen translate www.systranlinks.com 80 | return }
    }
  }
  else inc %translate 
}

alias -l traite {
  tokenize 62 %traduct | tokenize 60 $2- | tokenize 47 $1-
  return $remove($1-,textarea,br)
}

alias bande { halt }

alias rech {
  did -ra trans 14 Recherche en Cours...
}

Conclusion :


ben dite moi si il y a des bug ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.