#!/bin/sh
#
# Script de traduction de mots

PROG=`basename $0`
VERSION="0.3" #2006/04/16
FROMTO="en_fr"
TEXT=""
ENC="utf-8" # change to latin0, latin1, latin9, ascii if needed

TRADUCSTYPES="en_zh en_zt en_fr en_de en_it en_ja en_ko en_ru en_pt en_es en_el zh_en fr_en fr_nl fr_de fr_el fr_it fr_ja fr_ko f_pt fr_ru fr_es de_en de_nl de_fr de_el de_it de_ja de_ko de_pt de_ru de_es el_en el_nl el_fr el_de el_it el_ja el_ko el_pt el_ru el_es it_en it_nl it_fr it_de it_ja it_ko it_pt it_ru it_es ja_en ja_nl ja_fr ja_de ja_el ja_it ja_ko ja_pt ja_ru ja_es ko_en ko_nl ko_fr ko_de ko_el ko_it ko_pt ko_ru ko_es pt_en pt_nl pt_fr pt_de pt_el pt_it pt_ja pt_ko pt_ru pt_es ru_en ru_nl ru_fr ru_de ru_el ru_it ru_ja ru_ko ru_pt ru_es es_en es_nl es_fr es_de es_el es_it es_ja es_ko es_pt es_ru zt_en"

ARG=$1
test "$ARG" || ARG="-h"

if [ "$ARG" = "-h" -o "$ARG" = "--help" ]; then
  echo "babelfish v$VERSION"
  echo "Usage : $PROG [direction] mots"
  echo "direction : lg_lg (ex: en_fr)"
  echo "langues disponibles :"
  echo "en :  Anglais"
  echo "de :  Allemand"
  echo "zh :  Chinois"
  echo "zt :  Chinois trad"
  echo "es :  Espagnol"
  echo "fr :  Français"
  echo "el :  Grec"
  echo "nl :  Hollandais"
  echo "it :  Italien"
  echo "ja :  Japonais"
  echo "ko :  Koréen"
  echo "pt :  Portugais"
  echo "ru :  Russe"
  echo "certaines directions ne sont pas implémentées (ex: fr_ja)"
  exit
fi

test "$ARG" = "-v" -o "$ARG" = "--verbose" && { VERBOSE=1; shift; }

for ttyp in $TRADUCSTYPES; do
  if [ "$ttyp" = "$1" ]; then
    FROMTO=$ttyp
    shift
  fi
done

num=0
for arg in $*; do
  if [ $num = 0 ]; then
    TEXT="$arg"
  else
    TEXT="$TEXT $arg"
  fi
  num=`expr $num + 1`
done

DIRECTION=`echo "$FROMTO" | sed -e 's/\_/ -> /'`
test $VERBOSE && echo "Traduction $DIRECTION de \"$TEXT\" :"

TEXTQ=`echo "$TEXT" | sed -e 's/ /\+/g'`
URL="http://babelfish.altavista.com/tr?tt=text&text=$TEXTQ&lp=$FROMTO&enc=$ENC"

PAGE=`GET "$URL"`
#1er essai : un ou deux mots
TRADUC=`echo "$PAGE" \
| grep 'name="q"' \
| sed 's/^.*value="\(.*\)"><input.*value=.*/\1/'`

#deuxieme essai : la phrase etait plus longue
if [ "$TRADUC" = "" ]; then
  TRADUC=`echo "$PAGE" \
  | grep 'padding:10px' \
  | sed 's/.*padding:10px;>//'`
fi

echo "$TRADUC"

