Locale (Español)
Los locales se utilizan en Linux para definir el idioma que el usuario utiliza. En la medida que los locales definen los juegos de caracteres utilizados, establecer la configuración regional correcta es especialmente importante si el idioma contiene caracteres no ASCII.
Los nombres de los «locales» (configuración regional)
se definen utilizando el siguiente formato:
<idioma>_<territorio>.<codeset>[@<modificadores>]
Activar el «locale» necesario
Antes de que un locale puede utilizarse en el sistema, tiene que ser activado primero. Para mostrar una lista de todos las versiones locales disponibles, utilice la orden:
$ locale -a
Para habilitar un locale, descomente el nombre del locale en el archivo /etc/locale.gen
. Este archivo contiene todos los locales disponibles que se pueden utilizar en el sistema. El proceso es reversible deshabilitando (comentando) el locale. Después de que los locales necesarios están habilitados, el sistema necesita ser actualizado con las nuevas configuraciones regionales:
# locale-gen
Para mostrar ahora los locales actualmente en uso, escriba:
$ locale
Ejemplo ES Español
Primero descomente los locales siguientes en /etc/locale.gen
:
es_ES.UTF-8 UTF-8
A continuación, actualice el sistema como root:
# locale-gen
Configuración del locale de todo el sistema
Para definir la configuración regional de todo el sistema, establezca la variable LANG
en /etc/locale.conf
.
El contenido de locale.conf
es una lista de líneas separadas que definen las variables del entorno: además de LANG
, es compatible con todas las variables LC_*
, con excepción de LC_ALL
.
/etc/locale.conf
no existe por defecto, hay que crearlo manualmente.locale
durante la instalación es de su agrado, puede guardarla haciendo: # locale | cat > /etc/locale.conf
mientras se encuentra en el entorno chroot./etc/locale.conf
LANG="es_ES.UTF-8"
He aquí un ejemplo de configuración avanzada:
/etc/locale.conf
# Habilitar UTF-8 con valores españoles. LANG="es_ES.UTF-8" # Mantener el orden predeterminado (por ejemplo, los archivos que comienzan con un '.' (punto) # se mostrarán al principio en un listado del contenido del directorio). LC_COLLATE="C" # Establecer la fecha al formato DD-MM-YYYY (comprobación con «date +%c») LC_TIME="es_ES.UTF-8"
Puede establecer la configuración regional («locale») por defecto en locale.conf
o bien usando localectl
, por ejemplo:
# localectl set-locale LANG="es_ES.UTF-8"
Consulte localectl(1) y locale.conf(5) para más detalles.
La configuración regional de todo el sistema estará completamente actualizada después de reiniciar y quedará establecida para las sesiones individuales iniciadas.
Configuración de locales de reserva
En los programas que usan gettext para las traducciones comparadas, la opción LANGUAGE
se añade además de las variables habituales. Esto permite a los usuarios especificar una lista de locales que se utilizarán en ese orden. Si la traducción de la configuración regional preferida no está disponible, otra de un escenario similar se utilizará en lugar de la predeterminada. Por ejemplo, un usuario argentino puede desear recurrir a la ortografía española, en defecto de la argentina, antes que a la de Chile, por ejemplo:
~/.bashrc
export LANGUAGE="es_AR:es_ES:es"
o, para todo el sistema:
/etc/locale.conf
LANG="es_AR" LANGUAGE="es_AR:es_ES:es"
Configuración de locales de usuarios
Como mencionamos anteriormente, algunos usuarios podrían querer definir una configuración regional distinta a la definida de forma global para todo el sistema.
Establecer la configuración regional en el archivo de inicio de la shell
Para ello, exporte la variable LANG
con el local especificado al archivo ~/.bashrc
. Por ejemplo, para utilizar el locale es_ES.UTF-8
:
export LANG=es_ES.UTF-8
Los locales se actualizarán la próxima vez que sea leído ~/.bashrc
. Puede actualizar, ya sea reiniciando sesión o de forma manual:
$ source ~/.bashrc
Establecer la configuración regional en .locale.conf
El script etc/profile.d/locale.sh
sobrescribe la configuración regional para todo el sistema con la que se encuentra en $HOME/.config/locale.conf
, si existe. Este archivo no existe de forma predeterminada, con lo que habrá que crearlo y poner la configuración regional del idioma deseado.
$HOME/.config/locale.conf
LANG="es_ES.UTF-8" LANGUAGE="es_ES.UTF-8"
Configuración de la intercalación
La intercalación, (colación o clasificación), es un poco diferente a lo anterior. La clasificación es un mecanismo torpe, dado que locales diferentes se comportan de modo diverso. Para evitar posibles problemas, Arch utiliza la configuración LC_COLLATE="C"
en /etc/profile
. Sin embargo, este método es considerado obsoleto. Para habilitar este comportamiento, solo tiene que añadir la siguiente variable a /etc/locale.conf
:
LC_COLLATE="C"
Ahora, la orden ls
mostrará primero los archivos que comienzan con un punto, luego los nombres de los archivos que comiencen con mayúsculas y, después, los que comiencen con minúsculas. Tenga en cuenta que sin una opción LC_COLLATE
, las aplicaciones volverán a los valores especificados en LC_ALL
o LANG
, pero la configuración de LC_COLLATE
se sobrescribirá si LC_ALL
está definida. Si ésto crea problemas, asegúrese de que no se ha establecido ningún valor para LC_ALL añadiendo lo siguiente en el archivo /etc/profile
:
export LC_ALL=
Tenga en cuenta que LC_ALL es la única variable LC que no puede ser configurada en /etc/locale.conf
.
Configuración del primer día de la semana
En muchos países, el primer día de la semana es el lunes. Para regular este comportamiento, cambie o agregue las líneas siguientes de la sección LC_TIME
en /usr/share/i18n/locales/<tus_locales> (por ejemplo, es_ES)
:
week 7;19971130;5 first_weekday 2 first_workday 2
Y a continuación, actualice el sistema:
# locale-gen
Solución de problemas
Mi terminal no es compatible con UTF-8
Desafortunadamente, algunos terminales no son compatibles con UTF-8. En este caso, usted tiene que utilizar un terminal diferente. Aquí tiene una lista con algunos terminales que tienen soporte para UTF-8:
- vte-based terminals
- gnustep-terminal
- konsole
- mlterm
- rxvt-unicode
- xterm
Xterm no es compatible con UTF-8
xterm solo es compatible con UTF-8 si lo ejecuta como uxterm
o xterm -u8
.
Gnome-terminal o rxvt-unicode no es compatible con UTF-8
Es necesario poner en marcha estas aplicaciones desde una localización UTF-8 o caerá el soporte UTF-8. Activar el locale en_US.UTF-8
(o su locale UTF-8 alternativo) como se explicó anteriormente, y establézcalo como el idioma por defecto, reiniciando, a continuación, el sistema.
Véase también
- Guía de Gentoo Linux sobre localización
- http://wikigentoo.ksiezyc.pl/Locales.htm
- Test interactivo ICU sobre la clasificación[enlace roto 2021-05-17]
- Free Standards Group Open Internationalisation Initiative
- The Single UNIX Specification definition of Locale by The Open Group
- Locale environment variables