Bon bah normalement ca passe 🙂
# Variables pour les couleurs
FUSHIA="\033[1;35m"
RAZ="\e[m"
BLEUFONCE="\033[1;34m"
ROUGE="\033[1;31m"
# Si pas de mot a traduire on arrete la
[[ -z "${1}" ]] && { echo -e "${ROUGE}Aucun mot à traduire d'indiqué.${RAZ}"; return; }
# Récupération de la page de traduction
page=$(wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=${1// /%20}&sl=${2:-"en"}&tl=${3:-"fr"}" | sed "s/\],\[*\"/\n/g ; s/\]\],\[\[/\n/g ; s/\"//g")
liste_type=$(egrep "noun|^verb|^adverb|^adjective|^interjection|^preposition|^pronoun|^article|^conjunction|^," <<< "${page}")
# Si la recherche renvoie des explications
if [[ ${liste_type} ]]
then
# s/\[[[:digit:]]*\]// : il y a des fois des [0-9] qui font chier
# /[[:alpha:]]*,\[[[:alpha:]].*[[:digit:]]/ : recherche les lignes ayant les propositions
# s/\].*// : suppression de tout à partir de ]
# s/,/, /g : ajout d'un espace apres les virgules
# s/, \[/ : /p : afficher les lignes des propositions en remplacant la 1ere virgule par :
while read proposition
do
# Type de mot
unset type
# Récupération du type de mot
case $(egrep -m 1 "[[,]${proposition%% :*}$|[[,]${proposition%% :*}," <<< "${liste_type}" | sed "s/[[,]${proposition%% :*}// ; s/,.*//") in
noun) type="nom" ;;
verb) type="verbe" ;;
adverb) type="adverbe" ;;
adjective) type="adjectif" ;;
interjection) type="interjection" ;;
preposition) type="preposition" ;;
pronoun) type="pronom" ;;
article) type="article" ;;
conjunction) type="conjonction" ;;
esac
# Suppression du mot dans la liste car un meme mot peut etre de plusieurs types
liste_type="${liste_type/[[,]${proposition%% :*}}"
# Change la couleur des virgules
proposition="${proposition//,/${RAZ},${BLEUFONCE}}"
# Affiche le retour des mots avec leur description, le tout en couleur
if [[ ${type} ]]
then
echo -e "${FUSHIA}${proposition%% :*}${RAZ} de type ${FUSHIA}${type}${RAZ} : ${BLEUFONCE}${proposition#*: }${RAZ}."
else
echo -e "${FUSHIA}${proposition%% :*}${RAZ} : ${BLEUFONCE}${proposition#*: }${RAZ}."
fi
done < <(sed -n "s/\[[[:digit:]]*\]// ; /[[:alpha:][:space:]]*,\[[[:alpha:][:space:]].*[[:digit:]]/{s/\].*// ;s/,/, /g; s/, \[/ : /p}" <<< "${page}")
# En cas de phrase
elif [[ "${1}" =~ " " ]]
then
proposition=$(sed -n "/^\[.*${1}/{s/\[//g ; s/,.*//p}" <<< "${page}")
echo -e "${RAZ}Proposition de traduction de ${FUSHIA}${1}${RAZ} : ${BLEUFONCE}${proposition}${RAZ}."
# En cas de mot sans description
else
# Récupération des propositions
proposition=$(sed -n "/^[[:alpha:][:space:]]*,/{s/.*\[// ; s/,.*//p}" <<< "${page}" | sed ':z;N;s/\n/, /;bz')
# Change la couleur des virgules
proposition="${proposition//,/${RAZ},${BLEUFONCE}}"
echo -e "${RAZ}Proposition de traduction du mot ${FUSHIA}${1}${RAZ} : ${BLEUFONCE}${proposition}${RAZ}."
fi
test avec un et marcher
trad un fr en
a de type article : un, une.
an de type article : un, une.
one : un.
one de type nom : un, une, homme.
one de type adjectif : un, une, unique.
one de type pronom : un.
trad marcher fr en
walk de type verbe : marcher, se promener, aller à pied, traverser.
work de type verbe : travailler, faire, marcher, exploiter, bosser, préparer.
march de type verbe : marcher, manifester, faire sortir.
run de type verbe : fonctionner, courir, tourner, gérer, diriger, marcher.
go de type verbe : aller, passer, partir, aller à, devenir, marcher.
step de type verbe : marcher, faire un pas, faire le premier pas, faire un grand pas.
operate de type verbe : fonctionner, exploiter, opérer, faire fonctionner, gérer, marcher.
move de type verbe : déplacer, se déplacer, déménager, bouger, avancer, marcher.
tread de type verbe : marcher, fouler, écraser, presser de pied, avancer avec précaution, suivre qn de près.
function de type verbe : fonctionner, marcher, servir de.
perform de type verbe : effectuer, exécuter, réaliser, accomplir, faire, marcher.
roll de type verbe : rouler, tourner, dérouler, étendre, laminer, marcher.
perambulate de type verbe : parcourir, marcher, faire les cent pas, inspecter.
foot it de type verbe : aller à pied, marcher, danser.
file de type verbe : déposer, ficher, classer, limer, faire polluer, marcher.
dur dur mais j'ai réussis... jusqu'a ce que tu me trouves un autre mot etrange :p
Sinon j'ai pas pigé de quoi tu parlais pour le mode detection auto de la langue