Configurando localización en Gentoo Linux

Alexander Holler  Autor
Steven Lucy  Traductor/Editor
Benny Chuang  Editor
Lars Weiler  Editor
Tobias Scherbaum  Editor
Flammie Pirinen  Editor
Joshua Saddler  Editor
José Alberto Suárez López  Traductor
John Christian Stoddart  Traductor
José Luis Rivero  Traductor
Eduardo Robles Elvira  Traductor
Tomás Cayuelas Ruiz  Traductor
José María Alonso  Traductor

Actualizado 15 de noviembre, 2009

1.  Zona horaria

Para mantener la hora apropiadamente, debe seleccionar la zona horaria para que el sistema pueda conocer su ubicación. Busque la zona horaria en /usr/share/zoneinfo. Ajuste la zona horaria en /etc/conf.d/clock. Por favor evite las zonas horarias /usr/share/zoneinfo/Etc/GMT* ya que sus nombres no indica las zonas esperadas. Por ejemplo, GMT-8 es, de hecho, GMT+8.

Listado de Código 1.1: Estableciendo la zona horaria

# ls /usr/share/zoneinfo
(Vamos a usar como ejemplo a Madrid)
(En primer lugar, copie la zona apropiada a localetime)
# cp /usr/share/zoneinfo/Europe/Madrid /etc/localtime
(Ahora especifique su zona horaria)
# nano -w /etc/conf.d/clock
TIMEZONE="Europe/Madrid"

#date
Wed Mar  8 00:46:05 CET 2006

Nota: Asegúrese que el indicador de zona horaria de tres letras (en este caso "CET") sea el correcto para su área.

Nota: Puede personalizar el valor de la variable de entorno TZ al texto que sigue /usr/share/zoneinfo en el archivo rc de su shell (.bash_profile en el caso de bash). En este caso TZ="Europe/Madrid".

2.  El reloj del sistema

En la mayoría de las instalaciones de Gentoo Linux installations, el reloj del sistema está puesto a la hora UTC (o GMT, Greenwich Mean Time) y luego se ajusta tomando en cuenta la zona horaria para establecer la hora actual, local. Si por alguna razón requiere que la hora del reloj del sistema no sea UTC habrá que modificar /etc/conf.d/clock para cambiar el valor de CLOCK de UTC a local

Listado de Código 2.1: reloj local vs. GMT

(recomendado:)
CLOCK="UTC"
(o:)
CLOCK="local"

3.  Locales del Sistema

¿Qué son las locales?

Las locales son un conjunto de datos que muchos programas utilizan para determinar los ajustes específicos de país e idioma. Las locales y sus datos forman parte de la biblioteca del sistema y se encuentran en /usr/share/locale en la mayoría de los sistemas. Una locale generalmente tiene el nombre de forma ab_CD donde ab representa las dos (o tres) letras del su código del idioma (según la ISO-639) y CD representa las dos letras del su código del país (según la ISO-3166). Las variantes suelen agregarse a las locales, por ejemplo en_GB.UTF-8 o de_DE@euro. Por favor explore la página de Wikipedia (en inglés) para más información acerca de las locales y otros artículos relacionados.

Variables de entorno para las locales

Los ajustes de las locales se almacenan en las variables de entorno. Éstos se ajustan normalmente dentro de /etc/env.d/02locale (para ajustar todo el sistema) y ~/.bashrc (para ajustar un usuario especifico). Las variables que controlan diferentes aspectos de las locales se muestran en la tabla inferior. Todas las variables toman un nombre de una locale en el formato ab_CD ya comentado arriba.

Nombre de la Variable Explicación
LANG Define todas las locales inmediatamente, a la vez que permite personalización individual a través de los ajustes LC_* comentados abajo.
LC_COLLATE Define el orden alfabético la cadena. Esto afecta, por (ej. la salida ordenada del listado de un directorio).
LC_CTYPE Define el carácter que maneja las propiedades del sistema. Determina qué caracteres se consideran parte del alfabeto, numérico, etc. ... También determina si el juego de caracteres usado es aplicable.
LC_MESSAGES Las localizaciones para aplicaciones que usan el esquema de localización basado en mensajes (la mayoría de los programas GNU, vea los capítulos siguientes para una información más exacta sobre lo que hacen, y cómo obtener los programas).
LC_MONETARY Define las unidades monetarias y el formato de los valore numéricos del tipo de moneda.
LC_NUMERIC Define el formato de los valores numéricos tradicional que no son de moneda. Afecta a cosas, como el separador para los miles y el separador decimal.
LC_TIME Define el formato de fechas y horas.
LC_PAPER Define el tamaño por defecto del papel.
LC_ALL Una variable especial para pasar por alto los demás ajustes.

Nota: Algunos programas se escriben de tal forma que esperan que el orden del alfabeto sea el del inglés tradicional, mientras que algunas locales, más notablemente la de Estonia, usa un orden diferente. Por lo tanto se recomienda ajustar explícitamente LC_COLLATE a C cuando se trata con ajustes que afectan a todo el sistema.

Aviso: Por la misma razón, el uso de LC_ALL está fuertemente desaconsejado. Por favor úselo sólo para pruebas y nunca lo ajuste en un fichero de arranque.

La mayoría de los usuarios solo ajustan la variable LANG de forma global. Este ejemplo es para la locale española unicode:

Listado de Código 3.1: Ajustando la locale por defecto del sistema en /etc/env.d/02locale

LANG="es_ES.UTF-8"
LC_COLLATE="C"

Nota: Use es_ES@euro como su variable LANG si quiere usar el símbolo del Euro (€).

También es posible y bastante común, especialmente en un entorno UNIX tradicional, dejar los ajustes globales intactos, esto es en la locale "C". Los usarios aún pueden especificar su locale preferida en su propio fichero shell RC:

Listado de Código 3.2: Estableciendo el locale del usuario en ~/.bashrc

export LANG="es_ES.UTF-8"
export LC_COLLATE="C"

Otra forma de configurar el sistema es dejarlo en la locale por defecto C, sin embargo se debe activar la representación de caracteres UTF-8. Esta opción se consigue usando los siguientes ajustes en /etc/env.d/02locale:

Listado de Código 3.3: Usando la locale C tradicional mientras se especifica UTF-8

LC_CTYPE=es_ES.UTF-8

Usando el trozo de código de arriba, los usuarios podrán ver los nombres de ficheros de localización de forma correcta, sin ser forzados a su idioma preferido.

Para que los programas puedan trabajar con la localización que eligió, probablemente necesitará compilar los programas con la opción nls (soporte para lenguaje nativo, "Native Language Support"), indicado en sus USE. La mayoría de los programas usan nls pero también necesitan la librería gettext para extraer y utilizar mensajes localizados. Por supuesto, el Portage de Gentoo lo instalará automáticamente cuando se requiera.

Una vez establecido el locale adecuado, asegúrese de actualizar las variables de entorno para que el sistema esté al tanto de los cambios:

Listado de Código 3.4: Actualizando el entorno

(Para el locale por por defecto del sistema:)
# env-update && source /etc/profile

(Para un locales específico de usuario:)
$ source ~/.bashrc

Después de esto, reinicie el servidor X pulsando Ctrl-Alt-Backspace, haga log out y luego login como el usuario.

Ahora, verifique que los cambios han surtido efecto:

Listado de Código 3.5: Verifique los cambios del entorno

$ locale

Hay también localizaciones adicionales para la variable llamada LINGUAS, que afecta a los ficheros de localización que se instalan con los programas basados en gettext, y decide la localización que se tiene que usar para algunos programas específicos, por ejemplo: kde-base/kde-l10n y app-office/openoffice. La variable toma como valor una lista de códigos separada por espacios y el lugar recomendado para darle valor es elel fichero /etc/make.conf:

Listado de Código 3.6: Ajustando LINGUAS en /etc/make.conf

# nano -w /etc/make.conf
(Añada la variable LINGUAS. Por ejemplo para el Español, Alemén
e Inglés:)
LINGUAS="es de en"

Generando localizaciones específicas

Si utiliza una localización que no esté disponible por defecto, debe usar localedef para generar su propia localización. Por ejemplo:

Listado de Código 3.7: Generando una localización con localedef

# localedef -c -i es_ES -f ISO-8859-15 es_ES.ISO-8859-15

Luego de generar la localización, podrá exportar su variable de entorno LANG tal como lo desee.

Listado de Código 3.8: Exportando la varible de entorno LANG

# export LANG="es_ES.ISO-8859-15"

Asegúrese de actualizar el entorno depués del cambio:

Listado de Código 3.9: Actualizando el entorno

# env-update && source /etc/profile

Después de esto debe reiniciar el servidor X pulsando Ctrl-Alt-Backspace, hacer log out y luego login como usuario.

Generando las locales para glibc

Probablemente utilize uno, tal vez dos localizaciones en su sistema. Puede especificar las locales que va a necesitar en /etc/locale.gen.

Listado de Código 3.10: Añadiendo locales a /etc/locale.gen

en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
es_ES ISO-8859-1
es_ES@euro ISO-8859-15

El siguiente paso es ejecutar locale-gen, el cual generará todas las locales especificadas en el archivo /etc/locale.gen.

Nota: locale-gen está disponible en el glibc-2.3.6-r4 y más recientes. Si tiene una versión más antigua de glibc, debería actualizarlo ya.

Puede verificar que las locales seleccionadas están disponibles ejecutando el comando locale -a.

4.  Distribución del teclado para la consola

La distribución del teclado para la consola se configura en el fichero /etc/conf.d/keymaps mediante la variable KEYMAP. Los valores válidos pueden encontrarse en /usr/share/keymaps/ {arch}. El subdirectorio i386 está divido por distribución de teclas (qwerty/, azerty/, etc.). Algunos idiomas tienen múltiples opciones, por lo que tal vez desee experimentar para decidir cuál le sirve mejor.

Listado de Código 4.1: Establecer el mapa de teclado para la consola

KEYMAP="es"
KEYMAP="es-latin1"
KEYMAP="es-latin1-nodeadkeys"

5.  Distribución del teclado en el servidor X

La distribución del teclado a ser usado bajo el servidor X está pautado en /etc/X11/xorg.conf por la opción XkbLayout.

Listado de Código 5.1: Configurando el mapa del teclado para X

Section "InputDevice"
    Identifier  "Keyboard1"
    ...
    Option "XkbLayout"    "es"
    # Option "XkbModel"     "pc105"    ## para teclados internacionales.
    # Option "XkbVariant"  "nodeadkeys" ## usado para la entrada de xterm
    ...

Si tiene un teclado internacional, debería configurar la opción XkbModel a pc102 o pc105, ya que esto permitirá reconocer las teclas adicionales específica al teclado.

Las teclas muertas permitirán pulsar teclas que no se verán inmediatamente pero que podrán ser combinadas con otra letra para producir un caracter como é,è,á,à, etc. El configurar la opción XkbVariant a nodeadkeys permite ingresar estos caracteres a los terminales X.

Si desea cambiar entre varios mapas de teclado (por ejemplo entre inglés y ruso), lo único que tiene que hacer es agregar unas pocas líneas al archivo xorg.conf para especificar las distribuciones deseadas y los comandos de atajo.

Listado de Código 5.2: Cambiando entre distribuciones de teclado

Section "InputDevice"
    Identifier  "Keyboard1"
    ...
    Option "XkbLayout"    "us,ru"
    Option "XkbOptions"   "grp:alt_shift_toggle,grp_led:scroll"

Acá XkbOptions permite pasar de un teclado a otro sencillamente pulsando Alt-Shift. Esto también prenderá o apagará la luz Scroll Lock, gracias a la opción grp_led:scroll, constituyendo un práctico indicador visual señalando cuál distribución está en uso.

6.  KDE

Para KDE se debe instalar el paquete kde-base/kde-l10n y app-office/koffice-l10n. Se instalan respetando la variable LINGUAS descrita anteriormente.

7.  El símbolo del Euro en la consola

Para obtener el símbolo del Euro en la consola, hará falta configurar la variable CONSOLEFONT en el archivo /etc/conf.d/consolefont a uno de los archivos bajo /usr/share/consolefonts/ (sin incluir el .psfu.gz). El archivo lat9w-16 tiene el símbolo del Euro.

Listado de Código 7.1: Configurar la fuente de la consola

CONSOLEFONT="lat9w-16"

Debe verificar que CONSOLEFONT está en el nivel de ejecución boot:

Listado de Código 7.2: Verifique que está en el nivel de ejecución apropiado

# rc-update -v show | grep -i consolefont

Si no se muestra un nivel de ejecución para CONSOLEFONT, agréguelo al nivel adecuado:

Listado de Código 7.3: Agregando consolefont al nivel de ejecución boot

# rc-update add consolefont boot

8.  El símbolo del Euro en X

Para la mayoría de las aplicaciones

Obtener el símbolo del Euro bajo X es algo más difícil. Lo primero es cambiar las definiciones de fixed y variable en /usr/X11R6/lib/X11/fonts/misc/fonts.alias para que terminen en iso8859-15 en vez de iso8859-1 .

Listado de Código 8.1: Configurando las fuentes por defecto de X

fixed        -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
variable     -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15

Algunas aplicaciones usan sus propias fuentes y habrá que decirle a cada una que hagan uso de fuentes con el símbolo del Euro. Puede hacer esto por usuario en .Xdefaults (puede copiar este archivo a /etc/skel/ para que pueda ser aprovechado por los nuevos usuarios) o a nivel global para cualquier aplicación con un archivo de recursos en /usr/X11R6/lib/X11/app-defaults/ (como xterm). En estos archivos generalmente hay que cambiar una línea preexistente en vez de agregar líneas. Para cambiar nuestra fuente en xterm haríamos:

Listado de Código 8.2: Cambiando la fuente de xterm

(en su directorio home)
# echo 'XTerm*font: fixed' >> .Xresources
# xrdb -merge .Xresources

El símbolo del Euro en (X)Emacs

Para usar el símbolo del Euro en (X)Emacs, agregue lo siguiente al archivo .Xdefaults :

Listado de Código 8.3: Cambiando la fuente de emacs

Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15

Para XEmacs (no el Emacs original), hay que hacer un poco más. En /home/user/.xemacs/init.el, agregue:

Listado de Código 8.4: Cambiando la fuente de xemacs

(define-key global-map '(EuroSign) '[€])

Nota: El símbolo entre corchetes [] es el del Euro.

OpenOffice.Org

Los ebuilds actuales de app-office/openoffice y app-office/openoffice-bin soportan la variable LINGUAS para seleccionar la instalación de paquetes GUI de lenguajes. Para ver el estado de las traducciones de los mensajes del GUI, guionización, corrección ortográfica y demás localizaciones de su idioma, por favor visite a la página web de localizaciones de OpenOffice.Org.