bonsoir,
[1] - Script pour traduire un mot/phrase dans n'importe quelle langue: (grâce à google traduction)
1.a. Installation:
Pour les néophytes, voici la démarche à suivre:
- Créez un fichier vide avec la commande:
gedit /chemin/vers/le/fichier/nom-du-fichier.sh
- Copiez le script bash ci dessous dans le fichier vierge
- Rendez le exécutable avec la commande:
chmod u+x /chemin/vers/le/fichier/nom-du-fichier.sh
1.b. Script bash
Réalisé par Hizoka, merci à lui 😉
# 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
html=$(wget -U "Mozilla/5.0" -qO - "http://translate.google.fr/translate_a/t?client=t&text=${1// /%20}&sl=${2:-"en"}&tl=${3:-"fr"}")
page=$(echo $html | sed "s/\],\[*\"/\n/g ; s/\]\],\[\[/\n/g ; s/\"//g")
liste_type=$(egrep "nom|^verbe|^adverbe|^adjectif|^interjection|^préposition|^pronom|^article|^conjonction|^," <<< "${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 :
printf "$ROUGE%-12s$RAZ ${FUSHIA}$(echo $html | sed 's/\[\[\[\"//' | cut -d \" -f 1)$RAZ\n" "traduction"
while read proposition
do
# Type de mot
unset type
# Récupération du type de mot
type=$(egrep -m 1 "[[,]${proposition%% :*}$|[[,]${proposition%% :*}," <<< "${liste_type}" | sed "s/[[,]${proposition%% :*}// ; s/,.*//")
# 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}}"
# Pour l'affichahe
lineToPrint="${FUSHIA}${proposition%% :*}${RAZ} : ${BLEUFONCE}${proposition#*: }${RAZ}."
[ "$currentType" != "$type" ] && currentType=$type && printf "\n$ROUGE%-12s$RAZ $lineToPrint\n" "$type" || printf "$ROUGE%-12s$RAZ $lineToPrint\n" ""
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
1.c. Utilisation: (vous devez être connecté à internet)
Syntaxe:
translate.sh "phrase" [langue-IN] [langue-OUT]
langue-IN correspond à la langue dans laquelle la phrase est écrite et
langue-OUT est la langue dans laquelle la phrase va être traduite. Il faut utiliser les codes pays pour identifier les langues (en, fr, de, es ...). Si l’expression contient des espaces, les guillemets sont obligatoire. ( Si langue-IN et langue-OUT sont omis alors langue-IN sera fr et langue-OUT sera en: traduction français vers l'anglais).
Démo >>> http://ascii.io/a/3023 <<<
[2] - Script pour lister les synonymes d'un mot: (grâce au site web
http://www.crisco.unicaen.fr/des/)
2.a. Installation:
Copiez le code ci-dessous dans le fichier
~/.scripts/synonym.awk que vous aurez crée :
#!/usr/bin/awk -f
#head
BEGIN {
#print toColoredStr(5," -- Site: ")"\033[4mhttp://www.crisco.unicaen.fr/des/synonymes\033[00m\n"
}
#body
{
#Lecture id="synonymes"
if( match($0,"id=\"synonymes\"")>0 && antonymR!=1 ) { readTitre=1 }
if( readTitre==1 && match($0,"class='titre'")>0 ) {
match($0,">[0-9]* ")
print toColoredStr(5," -- synonyme ("substr($0,RSTART+1,RLENGTH-2)") :")
readSynonym=1
readTitre=0
}
if(readSynonym>0) readSynonym+=1
if(readSynonym==3) {
gsub("<[^>]+>","")
gsub("^\t*","")
print toColoredStr(3,$0)
}
if(readSynonym==12) {
print toColoredStr(5,"\n -- Classement synonyme :")
gsub("<[^>]+>","")
gsub("^\t*( )+","")
gsub("( )+",", ")
print toColoredStr(3,$0)
exit
}
}
# fonction
function toColoredStr(_color_,_str_) {
tabColor[0]="\033[00m" #DEFAULT
tabColor[1]="\033[30m" #BLACK
tabColor[2]="\033[31m" #RED
tabColor[3]="\033[32m" #GREEN
tabColor[4]="\033[33m" #ORANGE
tabColor[5]="\033[34m" #BLUE
tabColor[6]="\033[35m" #MAGENTA
tabColor[7]="\033[36m" #CYAN
tabColor[8]="\033[37m" #WHITE
return tabColor[_color_]""_str_""tabColor[0]
}
Ensuite ajoutez les lignes suivantes à la fin du fichier
~/.bashrc qui existe déjà:
synonym() {
curl "http://www.crisco.unicaen.fr/des/synonymes/$1" 2>/dev/null | ~/.scripts/synonym.awk
}
2.b. Utilisation: (Vous devez être connecté à internet pour utiliser ce script)
Syntaxe:
synonym mot
Démo >>> http://ascii.io/a/3025 <<<
- Enjoy -