[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Encuesta: uso del Euro en Debian



	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: pgppOAXY2dGHK.pgp
Description: PGP signature


Reply to: