Estoy planteando como integrar el soporte del euro al programa "castellanizar" de user-es. Pero para ello, debido a la gran variedad de sistemas posibles y de configuraciones variadas, me gustaría hacer una pequeña encuesta para la que os adjunto un programa (euro-test). La idea es ver, entre los usuarios de Debian en español, quién tiene configurado bien el símbolo de euro (en consola y X) y quién no y por qué. Aquellos que quieran participar lo tiene fácil, guardan el programa y lo ejecutan en consola y luego en X, diciendo en ambos casos que guarde los resultados, luego me enviais el fichero "euro-test.log" resultante. De paso, podreis ver si vuestro sistema tiene soporte para visualizar o no el euro y si lo teneis correctamente configurado. Un saludo a todos y gracias de antemano a los que me echeis una mano en esto. Javi PS: Al hilo de esto revisaré el documento de euro-howto de Jose Carlos Garcia Sogo y lo pondré, posiblemente, como una receta en La Espiral
#!/bin/sh # Euro test # Tests for the availability of euro sign in GNU/Linux systesm # # (c) 2001 Javier Fernández-Sanguino Peña <jfs@debian.org> # # TODO # - Join final information on X and console (it's more or less similar) # - add UTF support? function print_euro_iso8859_15 { gettext "Imprimiendo el caracter euro (ISO8859-15): " printf "\xa4\n" } function print_euro_utf { gettext "Imprimiendo el caracter euro (UTF): " printf "\xe2\x82\xac\n" } function read_answer { gettext "¿Puede ver el caracter euro en la línea anterior? (s/N) " read sino case "$sino" in s*|S*|y*|Y*) answer=1;; *) answer=0;; esac } function test_euro_font { print_euro_iso8859_15 read_answer [ $answer = 1 ] && { gettext -s "Su fuente tiene soporte de euro (ISO8859-15)" eurofont="iso8859" return 0 } print_euro_utf read_answer [ $answer = 1 ] && { gettext -s "Su fuente tiene soporte de euro (UTF-8)" eurofont="utf" return 0 } gettext -s "Su fuente no tiene soporte de euro." eurofont="" return 1 } function test_euro_key { gettext "Pulse la combinación de teclas Alt Gr+e: " read test read_answer [ $answer = 1 ] && { gettext -s "Su teclado está configurado para soportar el euro." eurokey=1 return 0 } gettext -s "Su teclado no está configurado para soportar el euro." eurokey=0 return 1 } function set_console_euro_font { gettext -s "Instalando una fuente con soporte de euros" if [ -f /usr/bin/consolechars ] then consolechars -f lat0-16 || { # Test with other lat0/lat9 fonts?? # This part takes the first one available (might be too ugly) for i in /usr/share/consolefonts/lat0*; do consolechars -f $i && break done } else # TODO: Make it work also with setfont (old console-tools package) gettext -s "No puedo instalar una fuente nueva, no encuentro el programa consolechars" fi } function set_console_euro_key { gettext -s "Reconfigurando el teclado" if [ -f /bin/loadkeys ] ; then loadkeys euro.inc.gz || { gettext -s "Error al reconfigurar el teclado" if [ ! -f /usr/share/keymaps/i386/include/euro.inc.gz ] then gettext -s "Su sistema no tiene la definición de euros instalada" else gettext -s "Su definición de euros no es correcta o no ha podido ser cargada" fi gettext -s "Intentando carga manual" echo -e "altgr keycode 18 = currency \n altgr keycode 46 = cent " | loadkeys - } else gettext -s "No encuentro loadkeys, no es posible reconfigurar el teclado" fi } function set_X_euro_font { gettext -s "Comprobando fuentes instaladas en X" X_fonts=`xlsfonts | grep iso8859-15$` if [ ! -z "$X_fonts" ] then # We could take the first font here and launch a new xterm with it gettext -s "Las siguientes fuentes con soporte euro están instaladas en tu sistema:" echo $X_fonts if [ "$ARG" = "X" ] then gettext -s "No ha sido posible ejecutar un terminal con fuente con soporte en euros (segundo intento)." else gettext -s "Se va a ejecutar de nuevo este programa con un terminal que las cargue" gettext -s "(utilizando 'xterm -fn \"nombre_de_fuente\")" xfont=`echo $X_fonts | cut -f 1 -d " "` xterm -fn "$xfont" -e $0 X fi exit 0 else gettext -s "No tienes fuentes instaladas con soporte euro" gettext -s "Instala los paquetes: xfonts-base-transcoded, xfonts-100dpi-transcodecd" gettext -s "y xfonts-75dpi-transcoded" fi } function set_X_euro_key { gettext -s "Reconfigurando el teclado en X" echo "keycode 0x1A = e E currency currency" | xmodmap - } function test_euro_console { gettext -s "Probando en entorno de texto (consola)" test_euro_font || set_font=1 [ $set_font = 1 ] && { set_console_euro_font test_euro_font } test_euro_key || set_key=1 [ $set_key = 1 ] && { set_console_euro_key test_euro_key } # TODO: Is this necessary? (restore the console font) [ $set_font = 1 ] && consolechars -d if [ ! -z "$eurofont" -a $eurokey = 1 -a $set_font = 0 -a $set_key = 0 ] then gettext -s "ENHORABUENA! Su sistema está preparado para representar euros (en consola)." else gettext -s "Para poder representar euros en su sistema deberá:" [ $set_font = 1 -a -z "$eurofont" ] && gettext -es "\tInstalar una fuente de consola para euros." [ $set_font = 1 -a ! -z "$eurofont" ] && gettext -es "\tPoner como fuente de su consola una con soporte de euros." [ $set_key = 1 -a $eurokey = 1 ] && gettext -es "\tConfigurar su teclado para que AltGr+E genere el simbolo euro." [ $set_key = 1 -a $eurokey = 0 ] && gettext -es "\tInstalar soporte a su teclado para generar la combinación de euro" fi } function test_euro_X { gettext -s "Probando en entorno gráfico (X)" test_euro_font || set_font=1 [ $set_font = 1 ] && { set_X_euro_font test_euro_font } test_euro_key || set_key=1 [ $set_key = 1 ] && { set_X_euro_key test_euro_key } if [ ! -z "$eurofont" -a $eurokey = 1 -a $set_font = 0 -a $set_key = 0 ] then gettext -s "ENHORABUENA! Su sistema está preparado para representar euros (en X)." else gettext -s "Para poder representar euros en su sistema deberá:" [ $set_font = 1 -a -z "$eurofont" ] && gettext -es "\tInstalar una fuente de X para euros." [ $set_font = 1 -a ! -z "$eurofont" ] && gettext -es "\tPoner como fuente de su terminal X una con soporte de euros." [ $set_key = 1 -a $eurokey = 1 ] && gettext -es "\tConfigurar su teclado para que AltGr+E genere el simbolo euro." [ $set_key = 1 -a $eurokey = 0 ] && gettext -es "\tInstalar soporte a su teclado para generar la combinación de euro" fi # TODO: Add info on X packages with euro keys if [ "$ARG" = "X" ] ; then gettext -s "Pulse <ENTER> para terminar" read fi } function info_system { gettext -s "Información del sistema (enviar a user-es@packages.debian.org)" if [ -f /etc/debian_version ] then version=`cat /etc/debian_version` gettext -es "Version Debian GNU/Linux: $version" fi case $1 in "console" ) gettext -s "Información de paquetes en consola (puede tardar unos segundos):" dpkg -l console-tools |grep ^i dpkg -l console-data |grep ^i if [ -f /etc/console-tools/config ] ; then echo "------- /etc/console-tools/config ------------" cat /etc/console-tools/config echo "------- /etc/console-tools/config ------------" fi ;; "X" ) gettext -s "Información de paquetes de X (puede tardar unos segundos):" dpkg -l xfree* |grep ^i dpkg -l xbase* |grep ^i dpkg -l xfonts* |grep ^i for config in /etc/X11/XF86Config-4 /etc/X11/XF86Config do if [ -f $config ] ; then echo "------- $config ------------" grep -2 -i xkb $config echo "------- $config ------------" fi done ;; esac } # Program starts here TEXTDOMAIN="user-es" ARG=$1 OUTFILE="./euro-test.log" set_font=0 set_key=0 eurokey=0 eurofont="" if [ -z "$DISPLAY" ] then test_euro_console else test_euro_X fi gettext "¿Desea que se genere un fichero con los resultados del test? (s/N) " read sino case "$sino" in s*|S*) gettext -s "La generación de resultados llevará unos segundos." gettext "Comenzando generación de resultados..." date=`date` echo "Resultados obtenidos en $date" >>$OUTFILE if [ ! -z "$eurofont" -a $eurokey = 1 -a $set_font = 0 -a $set_key = 0 ] then echo "RES: El sistema esta configurado para funcionar con euros" >>$OUTFILE else echo "RES: El sistema no esta configurado correctamente" >>$OUTFILE [ $set_font = 1 -a -z "$eurofont" ] && echo -e "\tFuente no instalada" >>$OUTFILE [ $set_font = 1 -a ! -z "$eurofont" ] && echo -e "\tFuente no configurada" >>$OUTFILE [ $set_key = 1 -a $eurokey = 1 ] && echo -e "\tTeclado no configurado" >>$OUTFILE [ $set_key = 1 -a $eurokey = 0 ] && echo -e "\tNo hay soporte de teclado" >>$OUTFILE fi if [ -z "$DISPLAY" ] then info_system console >>$OUTFILE else info_system X >>$OUTFILE fi gettext -s "..terminada." gettext -s "Envíe el fichero $OUTFILE al desarrollador del paquete." ;; *) ;; esac
Attachment:
pgpvtBY2pbRlA.pgp
Description: PGP signature