miércoles, 28 de agosto de 2013

Sublime text para Puppy-es


Esta aplicación está en ingles, pero me llama la atención lo útil que puede ser así que la comparto con ustedes haciendo el paquete listo para usar en tu sistema Puppy.

Sublime Text es un editor de texto sofisticado. Te encantará la interfaz de usuario, extraordinario y un rendimiento sorprendente. 

Usar selecciones múltiples para renombrar las variables rápidamente. | Ctrl + D | se utiliza para seleccionar la siguiente aparición de la palabra actual.

Hace lote de ediciones con selecciones múltiples. | Ctrl + Shift + L | se utiliza para dividir una selección en las líneas, y cada línea es editada simultaneamente.

El comando Palette ofrece un acceso rápido a la funcionalidad. | Ctrl + Shift + P | se utiliza para mostrar la paleta de comandos ", sspy" (abreviatura de Set Sintaxis: Python) se utiliza el conjunto de la sintaxis del archivo actual de Python.

Utilice el comando Goto Cualquier cosa para navegar rápidamente entre los archivos incluso en los proyectos mas grandes. | Ctrl + P | muestra Goto Cualquier cosa, y escribiendo a continuación, filtros de nombre de archivos y directorios.

Goto Cualquier cosa también se puede utilizar para mostrar una función, o  linea de palabra dentro de un archivo escriba @ despúes de un nombre de archivo para filtrar a símbolos.

Buscar y reemplazar con expresiones regulares.
Los espacios en blanco no deseados se eliminan mediante el uso de la expresión regular "+" para encontrar grupos de espacios, los cuales son seleccionados al mismo tiempo que el botón buscar.

Goto cualquier cosa = Goto anything

Descarga Sublime Text de AQUI

     




miércoles, 21 de agosto de 2013

Hotplug Sound y SoX para puppy-es

SoX 

Según su autor:
"SOX, la navaja suiza de los programas de procesamiento de sonido.
SOX es una plataforma (Windows, Linux, MacOS X, etc). Utilidad de línea de comandos que puede convertir varios formatos de archivos de audio en la computadora a otros formatos. También puede aplicar varios efectos de estos archivos de sonido, y, como un bono adicional, SOX puede reproducir y grabar archivos de audio en la mayoría de las plataformas."

Asi que vale la pena tenerlo en Puppy, y para hacer una pequeña prueba de su función adapte un script que encontré navegando por internet que reproduce un sonido de alerta cuando insertas/extraes un dispositivo usb al cual llamé Hotplug Sound.

Descarga SoX

Descarga Hotplug Sounds



Hasta pronto amigos.


domingo, 18 de agosto de 2013

Volti control de volumen para el systray

Caracteristicas

no necesitas pulseaudio, gstreamer, phonon etc. Solamente alsa.

Aplicación de mezcla interna, pero usted puede elegir cualquier aplicación de sonido que prefiera.

Click izquierdo abre escalador de volumen.

Puede configurar el botón central para alternar 'silencio' o 'mostrar' mezclador.

Bonito tooltip con la tarjeta y la informacion del volumen.

Soporte para las teclas multimedia del teclado.

Agregué archivo .mo de traducción al español.

Descarga AQUI.  MD5: 6ae31455257399e793a87befe722b471

Necesitarán estas dependencias, las pueden bajar desde el ppm.

python-dbus_1.0.0

python-alsaaudio_0.5+svn36

python-gtk2_2.24

python-xlib_0.14

Desde AQUI pueden descargarlos si no quieren usar el ppm

Para poder usarse en Puppy-es night rc

si deseas conservarlo como tu control por defecto edita el script en

/usr/sbin/ejecutar_systray


#!/bin/sh

#xbatalarm & pup-volume-monitor & freememapplet_tray & temp-cpu & internet-tray & powerapplet_tray & volumeicon & 
xbatalarm & pup-volume-monitor & freememapplet_tray & temp-cpu & internet-tray & powerapplet_tray & volti & 

la linea comentada es como se mira antes de editar el archivo.

Algunas imagenes



Temas de íconos






viernes, 9 de agosto de 2013

Consola terminator-0.96 para Puppy-es Night

Este paquete lo hice para mi, asi que si deseas probarlo es bajo tu propio riesgo. Me funcionó en Puppy-es nightrc y es de terminator una terminal que tiene la cualidad de dividirse en una misma ventana asi que empezemos.

Instalamos el terminator-0.96.pet


Ahora si abres roxterm y escribes terminator verás que le faltan librerias, será un buen reto para el ppm puppy packages manager, a ver si tiene lo que necesito.


Bueno me pide esto, ahora abro el ppm y marco la casilla DEV y busco esta libreria: python-vte.


Ok que me busque en todos los repositorios que tengo listados.


Que bien, la encontro ahora despues de marcarla para que me la descargue me aparece otra ventana ahi le doy click en examinar dependencias.


Veo que lleva mas dependencias, entonces las instalo también.


Me espero a que se instalen al rededor de 4 minutos, no tengo muy buena banda ancha.


Bueno ya esta, ahora pruebo de nuevo y !!zas que me pide python-notify, ok no me desespero lo busco tambien en ppm.


Sigo los mismos pasos como anteriormente les explique. Listo pruebo de nuevo en roxterm y cruzo los dedos y probamos.


Y listo. Dividi un poco la terminal para que pudieran ver de que se trata y tomarle una captura. uff que aventura pero asi son las cosas en puppy a veces hay que tener paciencia. Ahora solo le pedimos a uno de los expertos que nos haga un paquete decente de terminator y solicitamos en mailist que se agregue al repo de Puppy-es Night.
Hasta pronto amigos.

lunes, 5 de agosto de 2013

Monitoriza la temperatura del CPU

Desde consola o con una pequeña aplicación probado en Puppy-es night y Fluxnight,

lm-sensors version actualizada para Puppy-es night.

Descarga AQUI.





Xsensors pequeño monitor de estado del Cpu. Requiere que lm-sensors esté instalado.

Descarga AQUI.


Saludos.

domingo, 4 de agosto de 2013

Gshutdown para Puppy-es

Simple aplicación que te permite programar el apagado de tu ordendor.
Un poco de configuraicion despues de instalar el paquete.


La primera vez que corran la aplicacion mostrará este mensaje luego se van la biñeta Edicion--Preferencias y en Comando personalizado ingresan para apagar Puppy: wmpoweroff y para reiniciar: reboot y listo.


Lo demás ustedes lo configuran a su gusto.

Descarga AQUI.

Editado 04082013

El usuario josejp2424 empaquetó ya con la configuración para no hacerla al inicio asi que es automática ahora, gracias y saludos. 

jueves, 1 de agosto de 2013

Sobre gettext y traducciones en Puppy-es PARTE 4


Poedit es una aplicación muy buena para traducir ya que al abrirlo solo te van a aparecer la lineas  que necesitan traducción y al cerrar va a generar el archivo .mo, para algunos traductores es mas cómodo usar poedit que traducir en texto plano para otros talvez no pero es necesario hablar de la interface para que tengan una buena referencia los que quieran aventurarse a traducir.

En que momento podemos utilizar Poedit.

en cualquier momento todo y cuando tengan un archivo pot/po a la mano, a veces ya estan hechos o se pueden descargar de otros sitios para el caso de Puppylinux podriamos genera el archivo con momanager y detenernos en este punto.


Presionan Cancelar y luego buscan el archivo .po en /temp/momanager
le dan click derecho abrir con, no estará listada la opción abrir con poedit por lo que deberas personalizar la opcion, vas a personalizar y luego te saldrá una ventana donde deberas arrastrar el archivo poedit.desktop desde /usr/share/applications/ hasta la carpeta donde estan todas las opciones de apertura de archivos de rox.

Luego de eso si es primera vez que vas a usar poedit aparecerá esto.


Aceptar.


La interface está en español.


Como pueden apreciar la interface solo te muestra las lineas que hay que traducir, luego de terminar cierras la aplicación y se va a generar el archivo .mo en el mismo lugar donde esta el archivo .po quiere decir que si encontraramos o descargaramos un archivo .po de otro sitio y este se aloja en /root/my-documents/ si usamos poedit para traducirlo el archivo .mo se crearía en esa misma carpeta y tendriamos que para probarlo copiarlo en la carpeta de locales explicado anteriormente cuando usamos momanager.

Basicamente este es el sistema utilizado para traducción en Puppylinux o al menos el sistema que me ha servido para realizar la tarea, podria equivocarme en algunas cosas u olvidarme de otras, este ejercicio solo representa un comienzo para usuarios motivados en ayudar comunitariamente.

Nuevamente espero les sirva y les de buenos resultados. Exitos y nos leemos pronto.

Sobre gettext y traducciones en Puppy-es PARTE 3

UTILIZANDO MOMANAGER

Hablamos de Momanager en capítulos anteriores y ahora vamos a utilizarlo nos vamos al Menu--Herramientas--Momanager tambien desde la terminal puedes llamar la aplicacion escribiendo momanager y si con eso no tienes tambien arrastrando desde /usr/share/applications/momanager.desktop hasta el escritorio para hacer acceso directo.


La interface viene en ingles por que se supone que el que va a usarla tiene un grado medio-avanzado de conocimiento en la materia, el mensaje de bienvenida te dice que la interface te ayudará a crear y editar traducciones en tu lenguaje aplicaciones de Puppylinux


Luego va a escanear todo el sistema


A la izquierda todos los archivos que cuentan con traducción y a la derecha los que aun no tienen pero de igual manera la interface te permite editar los archivos y scripts que ya tienen asi que eso hace mas facil el trabajo de traduccion y no solo eso tambien archivos xml, entradas en el menu, categorias del menu etc.


Si ya tienes instalado Poedit en la interface de momanager abajo a la izquierda te saldrá una casilla para que puedas utilizarlo como herramienta si así lo deseas


luego como el ejercicio trata de Localizar xgamma-gui y ya tiene traducción lo vamos a buscar a la izquierda, luego para el caso marcamos edit nos va a aparecer el archivo po que esta dentro de la carpeta /temp/momanager el cual aparecerá en texto plano. listo para traducir las lineas


Hasta este punto nos vamos a detener una vez mas para analizar algunas lineas


msgid ""
msgstr ""
"Project-Id-Version: xgamma-gui VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-08-01 20:34+0800\n"
"PO-Revision-Date: 2012-07-11 12:28-0300\n"
"Last-Translator: Víctor Martínez <vicmartinez@operamail.com>\n"
"Language-Team: Argentinian <translation-es-AR@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

Es importante llenar esos campos que he dejado en rojo nombre de la aplicación o programa, version del programa por lo general se encuentra dentro del script, fecha de la realizacion del archivo PO, persona que lo traduce, si esta en algun grupo de traducción, idioma en que se traduce, codificacion de caracteres, eso con el motivo de ser ordenados y que otros tomen en cuenta nuestro trabajo, asi como en el ejemplo el usuario vicmz lo hizo.

Bien despues de editar y traducir el archivo tambien luego de revisarlo cierras el  documento no necesitas guardarlo solo lo cierras y te aparecera la siguiente ventana


En donde te dice que el archivo fué editado y convertido a .mo y donde esta alojado y que si tu apruebas el archivo se va a copiar en la carpeta /usr/share/locale/es/LC_MESSAGES asi luego de eso si abres la interface ya tendria que estar en español para este caso.


Al mismo tiempo que se hace la traduccion tambien una copia de los archivos se comprimen en un tarball en la ruta /root/MoManager-es_sv-WOOF.tar.gz y estos a sus vez contendran los registros de tu traducción.
Ademas el archivo comprimido puede ser enviado a los desarrolladores y traductores oficiales de Puppylinux para su revision, ese es un principio comunitario que beneficia a la distro.

Continuaremos con Poedit en el capitulo 4 de este tutorial.

Este documento está sujeto a analisis, discusión, criticas y correcciones, tienen libertad de opinar lo que ustedes deseen.


Sobre gettext y traducciones en Puppy-es PARTE 2

Bien ya aprendimos a agregar esas líneas que nos permitiran que el script pueda ser traducido en varios idiomas aquí lo vemos ya completo nuevamente.

==================================================


#!/bin/bash
#Written by PANZERKOPF
#100215 hacked by BK
#101207 hacked by EW
#121019 BK: fixed. internationalized.
#121022 L18L: complete the internationalization.

#101207 EW:
# this is a Xdialog frontend for the xgamma program - setting colour calibration for the screen
# It is using the 3 RGB channels 
# xgamma uses a logharithmic scale for the gamma values (0.1 - darkest, 1.0 - default, 10.0 - brightest) -> Y Values
# The GUI uses a linear scale (going from -100 - darkest, 0.0 - default, +100 - brightest) -> X Values
# The transformation is given by Y=10^(X/100)
# the calculation has to be performed with bc, 
# to use decimal values in the exponent the equation must be rewritten Y = exp ( X/100 * log (10))
# or, setting the precision to 3 decimal points using bc command: Y=$(echo "e( "$X"/100 * l(10))" | bc -l)
# The reverse transformation is XRED=$(echo "scale:0; 100 * l($YRED) / l(10)" | bc -l)

export TEXTDOMAIN=xgamma-gui
export OUTPUT_CHARSET=UTF-8

TITLE="$(gettext 'Monitor Gamma calibration')"
BACKTITLE="$(gettext 'Set value for each colour, or adjust equally if only want to adjust brightness of screen.
The spinboxes are adjustable in the range -100 to +100, where -100 is darkest, 0 is default, and +100 is brightest.')'"

if [ "`which xgamma`" = "" ]; then
 Xdialog --title "${TITLE}" --msgbox "$(gettext 'xgamma not found.')'" 0 0
 exit
fi

#get current settings (for startup)
YGAMMA="$(xgamma 2>&1 | tr -s ' ' | sed -e 's%[^0-9. ]%%g' | tr -s ' ')" #ex:  10.000  1.000  1.000

YRED="$(echo "$YGAMMA" | cut -f 2 -d ' ')"
YGREEN="$(echo "$YGAMMA" | cut -f 3 -d ' ')"
YBLUE="$(echo "$YGAMMA" | cut -f 4 -d ' ')"
inYRED="$YRED"
inYGREEN="$YGREEN"
inYBLUE="$YBLUE"

echo $YGAMMA 
echo $YRED $YGREEN $YBLUE

#transform y-->x values, 3 decimals precision, to get the current values;
XRED=$(echo "scale=3; 100 * l("$YRED") / l(10)" | bc -l)
XRED=$(echo "scale=0; "$XRED"/1" | bc -l) # cut decimals
XGREEN=$(echo "scale=3; 100 * l("$YGREEN") / l(10)" | bc -l)
XGREEN=$(echo "scale=0; "$XGREEN"/1" | bc -l) # cut decimals
XBLUE=$(echo "scale=3; 100 * l("$YBLUE") / l(10)" | bc -l)
XBLUE=$(echo "scale=0; "$XBLUE"/1" | bc -l) # cut decimals

EXCODE="0"
REDLABEL="$(gettext 'Red')'"
GREENLABEL="$(gettext 'Green')'"
BLUELABEL="$(gettext 'Blue')'"

APPLIEDFLAG='no'
while [ "${EXCODE}" = "0" ]; do

 XDGOUT=`Xdialog  --wrap --left --backtitle "${BACKTITLE}" --title "${TITLE}" --stdout --buttons-style "text" --icon "/usr/share/images/xgamma-gui.xpm" --ok-label "$(gettext 'Apply')" --cancel-label "$(gettext 'Exit')" \
--3spinsbox "" 356x0 "-100" "100" "$XRED" "${REDLABEL}" "-100" "100" "$XGREEN" "${GREENLABEL}" "-100" "100" "$XBLUE" "${BLUELABEL}"`

 # get exit code
 EXCODE=${?}

 XGAMMA=$XDGOUT
 # substitute >space< for >/<, otherways there are problems to parse the string properly
 XGAMMA=$(echo $XGAMMA| sed 's:/: :g')

 [ "${EXCODE}" != "0" ] && break

 APPLIEDFLAG='yes'
  
 # cut in pieces (parse) and assign
 set -- ${XGAMMA// / }
 XRED=$1
 XGREEN=$2
 XBLUE=$3

 # make transformation x-->y 
 YRED=$(echo "scale=3; e( "$XRED"/100 * l(10))" | bc -l)
 YGREEN=$(echo "scale=3; e( "$XGREEN"/100 * l(10))" | bc -l)
 YBLUE=$(echo "scale=3; e( "$XBLUE"/100 * l(10))" | bc -l)

 #apply gamma values 
 xgamma -rgamma ${YRED} -ggamma ${YGREEN} -bgamma ${YBLUE}

done

# if default values we dont need xgamma at startup, so remove the file. This saves time in .xinitrc
if [ "$XGAMMA" = "0 0 0" ]; then
rm -f $HOME/.xgamma-gamma
exit
fi
if [ "$inYRED" = "$YRED" ];then
 if [ "$inYGREEN" = "$YGREEN" ];then
  if [ "$inYBLUE" = "$YBLUE" ];then
   exit
  fi
 fi
fi
[ "$APPLIEDFLAG" = "no" ] && exit

# else ask if we want to save the current values and create a startup calibration file
Xdialog --yesno "$(gettext 'Save current configuration?')'" 0 0
if [ ${?} -eq 0 ]; then
  echo -n "xgamma -rgamma $YRED -ggamma $YGREEN -bgamma $YBLUE"' &' > $HOME/.xgamma-gamma
  #...xgamma is executed in /root/.xinitrc
  echo "Saved"  
fi

###END###

===========================================================


HERRAMIENTAS DE TRADUCCION

Y aqui esta nuestro script alojado en la ruta /usr/sbin

ahora bien que necesitamos para traducirlo pues las versiones recientes de Puppylinux traen una herramienta de traduccion que se llama momanager

Momanger es una interface gráfica escrita por Barry Kauler padre de Puppylinux y es muy facil de usar por cualquier usuario que quiera crear traducciones de aplicaciones en un idioma distinto del ingles en Puppy.

Podes encontrar la aplicacion en el menu--herrmientas o menu--utilities

Para que Momanager funcione es necesario tener instalados los devx.

Los devx son un conjunto de herramientas para compilar con soporte para C, C++, Vala entre otros. 

Poedit (antes poEdit) es un editor libre, abierto y multiplataforma de catálogos de Gettext usado en el proceso de localización.
Está construido con wxWidgets y licenciado bajo los términos de la licencia MIT.
Para usar poedit necesitas descargar la aplicacion

OK ya tenemos dos alternativas de traduccion Momanager y Poedit pero antes un poco mas de teoria.
Archivos .pot .po .mo
Gettext utiliza diferentes tipos de ficheros:
  • Pot – Los archivos .pot son plantillas donde estarán todas las cadenas de texto traducibles extraídas desde un fichero de código fuente. Donde habrá un identificador (msgid) y un texto (msgstr) vacío.
  • Po – Un archivo de PO se compone de muchas entradas, manteniendo la relación entre una cadena no traducida original y su traducción correspondiente. Todas las entradas en un archivo PO generalmente pertenecen a un solo proyecto, y todas las traducciones se expresan en un único idioma de destino.
  • Mo – Finalmente los ficheros Po son compilados para generar un archivo binario, llamado o con extensión .mo, que permite una lectura más rápida de los textos. Ahora ya se puede distribuir nuestro fichero, según la configuración de idioma del programa, este seleccionará de forma adecuada el fichero .mo (si existe).
Bien ordenemos nuevamente las ideas:
- Tenemos el script 
- guardamos un respaldo del script original por seguridad
- colocamos nuestra reseña de que vamos a editarlo
- agregamos gettext 
- lo colocamos en su respectiva ruta /usr/sbin por ejemplo
- instalamos los devx en nuestro sistema
- instalamos el pet de poedit por si deseamos utilizarlo en el futuro.

Ahora ya estamos listos para correr Momanager y luego de llenar algun registro, la interface hara un escaneo general del todo nuestro sistema ordenando todos los archivos eso incluye scripts, binarios, archivos .desktop, archivos xml, etc. 

Continuaremos explicándolo en la 3 parte de este tutorial.

Fuentes


http://www.poedit.net/

Sobre gettext y traducciones en puppy-es PARTE 1


Este pequeño ejercicio trata de alguna manera explicar de una forma empírica o primitiva pero tratando de que sea lo mas claro posible como agregar esas partes a un codigo que hacen que sea posible que un script pueda ser traducido en cualquier idioma.
Este documento no es un tutorial completo solo una minima explicacion de como poder traducir scripts usando gettext y las herramientas conocidas de traducción como momanager y poedit.
Quiero agradecer a vicmz desarrollador de puppylinux por señalarme por donde empezar en esta tarea de traducción.
Bueno comencemos  por ver un ejemplo de script escrito en bash, vamos a empezar por uno corto y facil.


#!/bin/bash
#Written by PANZERKOPF
#100215 hacked by BK
#101207 hacked by EW

# this is a Xdialog frontend for the xgamma program - setting colour calibration for the screen
# It is using the 3 RGB channels 
# xgamma uses a logharithmic scale for the gamma values (0.1 - darkest, 1.0 - default, 10.0 - brightest) -&gt; Y Values
# The GUI uses a linear scale (going from -100 - darkest, 0.0 - default, +100 - brightest) -&gt; X Values
# The transformation is given by Y=10^(X/100)
# the calculation has to be performed with bc,
# to use decimal values in the exponent the equation must be rewritten Y = exp ( X/100 * log (10))
# or, setting the precision to 3 decimal points using bc command: Y=$(echo "e( "$X"/100 * l(10))" | bc -l)
# The reverse transformation is XRED=$(echo "scale:0; 100 * l($YRED) / l(10)" | bc -l)


TITLE="Monitor Gamma calibration"
BACKTITLE='Set percentage value for each colour,\nor adjust equally if only want to adjust\nbrightness of screen' 

Como pueden ver basicamente las primeras lineas y que estan comentadas (las lineas que tienen el simbolo #) son lineas informativas sobre quien escribio el codigo y sucesivos cambios realizados, comentarios, ajustes al codigo, correccion de bugs etc. Luego vemos como se titula la interface "Monitor Gamma calibration" esto es lo que trataremos de traducir primeramente.

Ahora veremos el script pero en versiones siguientes.

#!/bin/bash

#Written by PANZERKOPF
#100215 hacked by BK
#101207 hacked by EW
#121019 BK: fixed. internationalized.
#121022 L18L: complete the internationalization.

#101207 EW:
# this is a Xdialog frontend for the xgamma program - setting colour calibration for the screen
# It is using the 3 RGB channels 
# xgamma uses a logharithmic scale for the gamma values (0.1 - darkest, 1.0 - default, 10.0 - brightest) -&gt; Y Values
# The GUI uses a linear scale (going from -100 - darkest, 0.0 - default, +100 - brightest) -&gt; X Values
# The transformation is given by Y=10^(X/100)
# the calculation has to be performed with bc, 
# to use decimal values in the exponent the equation must be rewritten Y = exp ( X/100 * log (10))
# or, setting the precision to 3 decimal points using bc command: Y=$(echo "e( "$X"/100 * l(10))" | bc -l)
# The reverse transformation is XRED=$(echo "scale:0; 100 * l($YRED) / l(10)" | bc -l)


export TEXTDOMAIN=xgamma-gui
export OUTPUT_CHARSET=UTF-8

TITLE="$(gettext 'Monitor Gamma calibration')"
BACKTITLE="$(gettext 'Set value for each colour, or adjust equally if only want to adjust brightness of screen.
The spinboxes are adjustable in the range -100 to +100, where -100 is darkest, 0 is default, and +100 is brightest.')'" 

Ven como va tomando forma veamos algunas lineas solo para referencia, si revisamos la segunda version del script vemos las fechas por ejemplo #121019 BK: fixed. internationalized. el 19 de octubre del 2012 barryk creador de puppylinux empezo a internacionalizar el script luego #121022 L18L: complete the internationalization. el usuario L18L completo la internacionalizacion el 22 de octubre del 2012 agregandole esa reseña a su trabajo asi que si tú vas a hacer una modificacion al script tambien debes agregar que fuiste tú quien modifico el codigo.

ahora veamos esto.


export TEXTDOMAIN=xgamma-gui
export OUTPUT_CHARSET=UTF-8 

donde 

textdomain -- Establece el dominio actual 
Esta función establece el dominio en el que se realizarán las busquedas provocadas por las llamadas a gettext(), normalmente el nombre dado a la aplicación. Se devuelve el dominio anterior. Puede llamar a la función sin parámetros para obtener el dominio actual sin necesidad de cambiarlo. 

UTF-8 -- (8-bit Unicode Transformation Format) es un formato de codificación de caracteres Unicode e ISO 10646 utilizando símbolos de longitud variable. UTF-8 fue creado por Robert C. Pike y Kenneth L. Thompson. Está definido como estándar por la RFC 3629 de la Internet Engineering Task Force (IETF).1 Actualmente es una de las tres posibilidades de codificación reconocidas por Unicode y lenguajes web, o cuatro en ISO 10646

Esto solo es teoria pero son lineas necesarias de agregar para que gettext funcione en el script, pero sigamos escribiendo un poco mas de teoria, los terminos i18n y l10n sabes que significan?.

i18n es abreviatura de la palabra internationalization, se deriva de la primera letra que es la i + 18 caracteres que tiene la palabra + la n que es la ultima letra.

l10n al igual que i18n es una abreviatura de la palabra localization, la primera letra que es la l + 10 caracteres que tiene la palabra + la n que es la ultima letra.

La internacionalización es el proceso de diseñar software de manera tal que pueda adaptarse a diferentes idiomas y regiones sin la necesidad de realizar cambios de ingeniería en el código. La localización es el proceso de adaptar el software para una región específica mediante la adición de componentes específicos de un locale y la traducción de los textos, por lo que también se le puede denominar regionalización. 

Asi que si vas a agregar gettext al script una forma de especificar que tú lo has hecho seria asi

#300713 i18n nilsonmorales

si el scritpt ya tiene gettext y vas a traducir al español entonces modificas 

#300713 l10n nilsonmorales

Bien continuemos que aun falta mucho, ya sabemos como editar el script para hacer saber que lo internacionalizamos o localizamos tambien sabemos que agregarle para que gettext haga lo suyo.
Ahora tenemos que agregarle todas las cadenas en las palabras y oraciones que queremos traducir, una regla muy clara es: si agregas mal gettext el script deja de funcionar asi de simple, asi que lo mejor es estar concentrados en eso y revisar muy bien donde agregamos esas lineas.


 $(gettext 'ORACION O PALABRA')

Esta es la base principal de como debe ir agregandose gettext a las oraciones y palabras ahora les mostrare ejemplos para agregarlos en determinada variable de un script para que tomen como referencia y se les haga mas facil la tarea.

TITLE
TITLE="$(gettext 'Monitor Gamma calibration')"

LABEL
<label>$(gettext 'ALSA Wizard')</label>

FRAME
<frame $(gettext 'TWO: Play test sound')>

TEST-LABEL
<text><label>$(gettext 'Choose the icon-set for desktop and menu')</label></text>

WINDOW-TITLE
<window title=\"$(gettext 'Puppy Icon Switcher')\" icon-name=\"gtk-convert\">

XDIALOG-TITLE
Xdialog --title " " --msgbox "$(gettext 'Temporary folder not found!')" 0 0

ECHO
echo "  $(gettext 'Loaded modules:')${ALLMODS}" >> /tmp/report-video

XDIGALOG-YESNO
Xdialog --yesno "$(gettext 'Save current configuration?')'" 0 0

DIAGLOG --TITLE
dialog --title "$(gettext 'Xorg Video Wizard')"

BUTTON-LABEL
<button><label>$(gettext 'Quit')</label></button>

Estos son los ejemplo mas comunes en programación en bash, en este momento ya se tendria una idea un poco mas clara de como internacionalizar un script.

Para no hacer tan largo el ejercicio voy a continuar en la proxima entrada ya que faltan mas detalles.


FUENTES
-Scripts en /usr/share/bin y /usr/share/sbin en cualquier iso de Puppylinux

-http://www.gsi.dit.upm.es/~anieto/docs/php_manual_es/function.textdomain.html

-http://es.wikipedia.org/wiki/UTF-8

-http://techtastico.com/post/que-es-i18n-y-l10n/

Este documento esta sujeto a criticas y correcciones, eres libre de opinar...