Martes, 15 de marzo de 2016

  En gentoo, el archivo  /usr/portage/profiles/use.desc contiene las USE globales y su descripción, en inglés por supuesto, para facilitar la tarea de entender que hace cada USE, he creado este programa que traduce la descripción de la USE que se necesite.

Pegar lo siguiente en un archivo de texto en blanco y darle permisos de ejecución.

#!/bin/bash

#QUE_USAR es la variable que indica si usar popup o mensajes clásicos. 1=clásicos  2=popup
QUE_USAR=1

function Traducir_descripcion_Use()
{
SERVIDOR="http://translate.google.com"

NAVEGADOR=$(which lynx)
if [ -z "$NAVEGADOR" ]; then
   echo 1
fi

#Buscar en el archivo de descripciones de las 'uses' la USE a traducir,
# seleccionando solo la descripción con el comando cut
BUSQUEDA=$(awk '$1 ~ /^'"$1"'$/' /usr/portage/profiles/use.desc|cut --complement -f 1-2 -d" " -s)

$NAVEGADOR -dump -nolist "$SERVIDOR/?hl=en&eotf=0&sl="en"&tl="es"&q=$BUSQUEDA"\
         > /tmp/tua.tmp 2>/dev/null

if [ "$?" -ne "0" ]; then
   echo 2
fi

#Limpiar el archivo de resultados de otra cosa que no sea la traducción

#Borrar lineas en blanco y eliminar los espacios iniciales de todas las lineas
sed -e '/^$/d' /tmp/tua.tmp|cut -c 4- > /tmp/tua1.tmp

#Selecionar solo desde la linea que empieza en 'Cancel' hasta la que termina
# en '___'. Es el espacio en el que está la traducción
sed -n -e '/Cancel/,/___/p' /tmp/tua1.tmp > /tmp/tua.tmp

#Borrar las dos primeras lineas, que contienen la palabra 'Cancel' y otra en blanco
sed -e '1,2d' /tmp/tua.tmp > /tmp/tua1.tmp

#Borrar la última linea, que es una linea de '_' completa
sed -e '/^___/d' /tmp/tua1.tmp > /tmp/tua.tmp

#Asignar a la variable de salida el contenido del archivo que contiene solo
# la traducción de la descripción de la USE pasada como parámetro
SALIDA=$(cat /tmp/tua.tmp)

if [ -n "$SALIDA" ]; then
   echo 4
fi

echo 3
}

##Main

USE=$(kdialog --inputbox 'Para traducir automáticamente la descripción escriba una USE incluida en el archivo: /usr/portage/profiles/use.desc' --caption "1,2 ó 3 cambia entrada salida")

#Si se introduce 1 ó 2 se cambia ia salida entre popup o mensajes clásicos. 1=clásicos  2=popup
case $USE in
  1)sed -i '/sed -i/!s/QUE_USAR=./QUE_USAR=1/' "$0";;
  2)sed -i '/sed -i/!s/QUE_USAR=./QUE_USAR=2/' "$0";;
  3)USE=$(kdialog --caption "Pulsar" --combobox "Seleccionar USE" `cut -f 1 -d" " /usr/portage/profiles/use.desc|sed -e '1,6d'`);;
esac

if [ -n "$USE" ]; then
RESULTADO=$(Traducir_descripcion_Use $USE)
case $QUE_USAR in
  1)case $RESULTADO in
      1) kdialog --error "Falta el programa lynx instálelo para seguir" --caption " interno: revise el mensaje";;
      2) kdialog --error "No se pudo conectar a " $SERVIDOR --caption " interno: revise el mensaje";;
      3) kdialog --error "Esa USE no existe en el archivo o no tiene una descripción en el mismo" --caption " interno: revise el mensaje";;
      *) kdialog --textbox /tmp/tua.tmp --caption "La descripción de $USE traducida es:" 444 180;;
    esac;;
  2)case $RESULTADO in
      1) kdialog --passivepopup "Falta el programa lynx instálelo para seguir" --title "Error interno: revise el mensaje" 30;;
      2) kdialog --passivepopup "No se pudo conectar a $SERVIDOR" --title "Error interno: revise el mensaje" 30;;
      3) kdialog --passivepopup "<b><font color=cyan>$USE</font></b> no existe en el archivo o no tiene una descripción en el mismo" --title "Error interno: revise el mensaje" 30;;
      *) kdialog --passivepopup "$(cat /tmp/tua.tmp)" --title "La descripción de <b><font color=cyan>$USE</font></b> traducida es:" 90;;
    esac;;
esac
fi



FIN


Tags: Kde-gentoo

Publicado por ExpoBi @ 2:09  | Kde-gentoo
Comentarios (0)  | Enviar
Comentarios