Cambiar la configuración local de idioma en Ubuntu

En linux, la internacionalización se ha implementado mediante la definición de locales. A lo largo de este documento utilizaremos para referenciarlo la palabra locale.

Juegos de caracteres:

  • UTF-8: Es una norma de transmisión para caracteres codificados en Unicode. Cada caracter es transmitido usando entre uno y cuatro octetos. Este sistema es compatible con ASCII ya que los primeros 127 caracteres (7 bits) se codifican igual, y es solamente a partir del caracter 128 cuando empiezan las diferencias.
  • ISO-8859-1: También conocido como Latin-9, es un estándar de codificación de caracteres. Codifica los caracteres con 8 bits y puede usarse para representar el alfabeto y otros  caracteres importantes para almacenar textos en inglés, francés, alemán, español y portugués (entre otros idiomas de Europa occidental) en ordenadores.
    Se diferencia de ISO-8859-1 en 8 caracteres, entre ellos el 0xA4, que en ISO-8859-15 es el símbolo del euro (€).
    Todos los caracteres imprimibles tanto de ISO 8859-1 como de ISO 8859-15 se encuentran también en Windows-1252.


Variables de Entorno:

Ubuntu usa UTF-8 como juego de caracteres predeterminado. Para ello viene preconfigurado para usar el locale “es_ES.UTF-8”, el cual se define en la variable de entorno LANG del fichero de configuración /etc/default/locale.

Hay cierta confusión con las diversas variables de entorno que definen el idioma que quiere usar el usuario para escribir. Esta es una lista de todas las variables que es posible definir para especificar un determinado locale:

Variable Descripción
LANG En ausencia de variables LC_*, esta variable determina la categoría de locale para la codificación de caracteres. Por ejemplo, las aplicaciones usan esta variable para determinar qué lenguaje usar en los mensajes al usuario, formatos de fechas, etc.
LC_ALL Esta variable determina el valor para todas las categorías de locales. El valor de LC_ALL tiene preferencia sobre las variables de categorías específicas de locales, que son todas las que comienzan por LC_ (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME) y también sobre la variable de entorno LANG.
LANGUAGE Es una extensión de GNU. En esta variable se define una lista de prioridades de locales separadas por comas. Es una alternativa a la variable LC_MESSAGES de POSIX, y la usan solo las aplicaciones al solicitar la entrada de texto al usuario.

Al instalar Ubuntu, la única variable que nos encontramos definida es LANG:

$ env
LANG=es_ES.UTF-8

La razón de que LANG sea la única variable definida es que así es más sencillo para el usuario definir excepciones mediante las variables LC_*, ya que cualquiera de ellas anula el efecto de LANG. Por ejemplo, si el usuario define en su perfil la variable LC_ALL, puede usar un locale distinto del que estén usando otros usuarios del sistema. Por supuesto, para que eso ocurra, dicho locale también debe de estar definido.

Ficheros de configuración:

Si queremos cambiar UTF-8 por ISO-8859-15 como codificación por defecto para el sistema, debemos modificar los siguientes archivos:

/var/lib/locales/supported.d/local

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


/etc/environment


PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
LC_TYPE=es_ES@euro
LC_ALL=es_ES@euro
LANG="es_ES@euro"
LANGUAGE="es_ES:es:en_US:en"


/etc/default/locale

LANG="es_ES@euro"


Reconfigurar los locales:

Una vez definidos los locales que queremos utilizar, le decimos al sistema que los utilice:

$ sudo dpkg-reconfigure locales
  Generating locales...
  en_US.UTF-8... up-to-date
  es_ES.ISO-8859-15@euro... up-to-date
  es_ES.ISO-8859-1... up-to-date
  es_ES.UTF-8@euro... up-to-date
  es_ES.UTF-8... up-to-date
Generation complete.


A partir de este momento, las nuevas sesiones usarán ISO-8859-15 como codificación por defecto en lugar de UTF-8.

$ env
LC_ALL=es_ES@euro
LC_TYPE=es_ES@euro
LANG=es_ES@euro
LANGUAGE=es_ES:es:en_US:en

Fuente: Documentos Linux

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentarios:

Publicar un comentario