Traductor inglés español [Bash]

Iniciado por leogtz, 9 Junio 2010, 00:42 AM

0 Miembros y 1 Visitante están viendo este tema.

leogtz

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$



Código (bash) [Seleccionar]
#!/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
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

VirajeCR

Excelente aporte mi amigo.

Gracias por compartir.

luinuz

Muy bueno, justo estaba buscando una url que diera un servicio parecido para parsearla.

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

luinuz

#4
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
}

Darioxhcx

que grande leo.. veo que seguis haciendo cosas interesantes ;D
saludos

leogtz

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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com