Bueno, este mini código lo hice hace 1 mes, simplemente para no tener que abrir el navegador y teclear todo ahí.
El código funciona de dos maneras, una mediante un inputbox y la otra mediante la línea de comandos:
leo@lein:~/Escritorio$ bash trans "i want to fly with you"
Quiero volar contigo
leo@lein:~/Escritorio$
(http://img291.imageshack.us/img291/3195/pantallazobashtranslato.png)
#!/bin/sh
# Leo Gutierrez R.
# matthewbauer, http://www.commandlinefu.com <--- Búsqueda en google traductor.
if [ $# -eq 0 ];
then
while true
do
Xdialog --title "Bash translator" \
--inputbox "Input:" 10 45 2> /tmp/inputbox.tmp.$$
retval=$?
input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
case $retval in
0)
cmd=$( wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$input&langpair=en|es" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/'; );
Xdialog --title "Bash translator" --msgbox "$cmd" 0x0
;;
1)
exit 0
;;
255)
echo -e "Box closed."
;;
esac
done
else
cmd=$( wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=en|es" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/'; );
echo -e "$cmd"
exit 0
fi
Excelente aporte mi amigo.
Gracias por compartir.
Muy bueno, justo estaba buscando una url que diera un servicio parecido para parsearla.
Gracias.
Ya por fin tengo completo mi script. Uso tu linea cuando detecto que es un texto. Si es solo una palabra te busca la definicion en el diccionario dandote varias acepciones y ejemplos.
Y ya aprovechando tambien se le pueden añadir mas idiomas y mas direcciones facilmente.
function translate () {
if [ $# = 0 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
echo -e "Fetch translation from google. Usage 'translate text' or 'translate world'"
return
fi
local TEMP_FILE="/tmp/deleteme.$$"
if [ $# -gt 1 ]; then
local IS_WORD="false"
else
local IS_WORD="true"
fi
echo "********************************************************"
echo " Choose the direction to translate '$*'"
echo "********************************************************"
echo " 0 - spanish to english"
echo " 1 - english to spanish"
echo " [Other] EXIT"
echo "********************************************************"
echo -n "Enter your menu choice: "
read OPTION
echo
local SRC=en
local DST=es
case $OPTION in
0) SRC=es; DST=en;;
1) SRC=en; DST=es;;
*) echo "Exit"; return;;
esac
local LNG=`echo "$LANG" | cut -d '_' -f 1`
local CHARSET=`echo $LANG | cut -d '.' -f 2` #usefull if charset is unicode
if [ "$IS_WORD" = "true" ]; then
lynx -accept_all_cookies -dump -hiddenlinks=ignore -nonumbers -assume_charset=$CHARSET -display_charset=$CHARSET "http://www.google.com/dictionary?aq=f&langpair=${SRC}|${DST}&q=${1}&hl=$LNG"| grep -C 2 -A 5 -w "*" > /$TEMP_FILE
if [ ! -s $TEMP_FILE ]; then
echo "No translation for '$1'"
else
cat $TEMP_FILE
fi
rm -f $TEMP_FILE
else
wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$@&langpair=${SRC}|${DST}" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/';
fi
}
que grande leo.. veo que seguis haciendo cosas interesantes ;D
saludos
Cita de: Darioxhcx en 9 Junio 2010, 15:57 PM
que grande leo.. veo que seguis haciendo cosas interesantes ;D
saludos
Cositas..., naaaa, son pequeños scripts para mi uso personal.
Saludos.