La configuración regional son las preferencias del usuario que se relacionan con su cultura.
Nombres locales
En todas las variantes actuales de Unix que conozco (pero no en algunas antigüedades), los nombres locales siguen el mismo patrón:
- Un código de idioma de dos letras minúsculas ISO 639-1 , o un código de idioma de tres letras ISO 639-2 si el idioma no tiene código de dos letras. Por ejemplo,
enpara inglés, dealemán, jajaponés, ukucraniano, berbereber, ...
- Para muchos pero no todos los idiomas, un guión bajo
_seguido de un código de país de dos letras en mayúsculas ISO 3166 . Así: en_USpara inglés estadounidense, inglés en_UKbritánico, francés fr_CAcanadiense (Québec), de_DEalemán de Alemania, de_ATalemán de Austria, ja_JPjaponés (de Japón), etc.
- Opcionalmente, un punto
.seguido por el nombre de una codificación de caracteres tales como UTF-8, ISO-8859-1, KOI8-U, GB2312, Big5, etc, con GNU libc al menos (no sé cómo esto es generalizada), la caja y puntuacion es ignorado en la codificación de nombres. Por ejemplo, el zh_CN.UTF-8chino mandarín (simplificado) está codificado en UTF-8, mientras zh_CNque el chino mandarín está codificado en GB2312 y el zh_TWchino taiwanés (tradicional) está codificado en Big5.
- Opcionalmente, un signo at
@seguido del nombre de una variante. El significado de las variantes depende de la configuración regional. Por ejemplo, muchos países europeos tienen una @eurovariante de configuración regional donde el signo de moneda es € y donde la codificación es una que incluye este carácter (ISO 8859-15 o ISO 8859-16), a diferencia de la variante sin adornos con el signo de moneda más antiguo. Por ejemplo, en_IE(inglés, Irlanda) usa la codificación latin1 (ISO 8859-1) y £ como el símbolo de la moneda, mientras que en_IE@eurousa la codificación latin9 (ISO 8859-15) y € como el símbolo de la moneda.
Además, hay dos nombres locales que existen en todos los sistemas tipo Unix: Cy POSIX. Estos nombres son sinónimos y significan computación, es decir, configuraciones predeterminadas que son apropiadas para los datos analizados por un programa de computadora.
Configuraciones locales
POSIX define las siguientes categorías locales :
LC_CTYPE: el conjunto de caracteres utilizado por las aplicaciones de terminal: datos de clasificación (qué caracteres son letras, puntuación, espacios, inválidos, etc.) y conversión de mayúsculas y minúsculas. Las utilidades de texto suelen prestar atención LC_CTYPEpara determinar los límites de los caracteres.
LC_COLLATE: orden de clasificación (es decir, clasificación). Esta configuración es de uso muy limitado por varias razones:
- La mayoría de los idiomas tienen reglas complejas que dependen de lo que se está ordenando (por ejemplo, las palabras del diccionario y los nombres propios pueden no usar el mismo orden) y no se pueden expresar por
LC_COLLATE.
- Existen pocas aplicaciones en las que el orden de clasificación adecuado es realizado por un software que utiliza la configuración regional. Por ejemplo, los procesadores de texto almacenan el idioma y la codificación de un archivo en el archivo mismo (de lo contrario, el archivo no se procesaría correctamente en un sistema con configuraciones locales diferentes) y no les importan las configuraciones locales especificadas por el entorno.
LC_COLLATEpuede tener efectos secundarios desagradables, en particular porque causa el orden de clasificación A <a <B <..., que hace que "entre A y Z" incluya las letras minúsculas de a a y. En particular, las expresiones regulares muy comunes como [A-Z]romper algunas aplicaciones .
LC_MESSAGES: el lenguaje de los mensajes informativos y de error.
LC_NUMERIC: formato de número: separador decimal y de miles.
Muchas aplicaciones codifican .como separador decimal. Esto hace que LC_NUMERICno sea muy útil y potencialmente peligroso:
- Incluso si lo configura, verá el formato predeterminado con bastante frecuencia.
- Es probable que se encuentre en una situación en la que una aplicación produce una salida dependiente de la configuración regional y otra aplicación espera
.ser el punto decimal o ,un separador de campo.
LC_MONETARY: como LC_NUMERIC, pero para cantidades de moneda local.
Muy pocas aplicaciones usan esto.
LC_TIME: formato de fecha y hora: nombres de semana y mes, reloj de 12 o 24 horas, orden de partes de fecha, puntuación, etc.
GNU libc, que encontrarás en Linux no incrustado, define categorías locales adicionales:
LC_PAPER: el tamaño de papel predeterminado (definido por la altura y el ancho).
LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT, LC_IDENTIFICATION: No sé de cualquier aplicación que utiliza éstos.
Variables de entorno
Las aplicaciones que usan la configuración regional los determinan a partir de variables de entorno.
- Luego,
LANGse utiliza el valor de la variable de entorno a menos que sea anulado por otra configuración. Si LANGno está configurado, la configuración regional predeterminada es C.
- Los
LC_xxxnombres se pueden usar como variables de entorno.
- Si
LC_ALLse establece, todos los demás valores se ignoran; Esto es principalmente útil para configurar LC_ALL=Caplicaciones de ejecución que necesitan producir la misma salida independientemente de dónde se ejecuten.
- Además, GNU libc utiliza
LANGUAGE para definir retrocesos para LC_MESSAGES(por ejemplo, LANGUAGE=fr_BE:fr_FR:enpara preferir francés belga, o si no está disponible francés francés, o si no está disponible inglés).
Instalar locales
Los datos locales pueden ser grandes, por lo que algunas distribuciones no los envían de forma utilizable y, en cambio, requieren un paso de instalación adicional.
- En Debian, para instalar configuraciones regionales, ejecute
dpkg-reconfigure localesy seleccione de la lista en el cuadro de diálogo, o edite /etc/locale.geny luego ejecute locale-gen.
- En Ubuntu, para instalar configuraciones regionales, ejecute
locale-gencon los nombres de las configuraciones regionales como argumentos.
Puede definir su propio entorno local .
Recomendación
Las configuraciones útiles son:
- Establezca
LC_CTYPEel idioma y la codificación en los que codifica sus archivos de texto. Asegúrese de que sus terminales usen esa codificación.
Para la mayoría de los idiomas, solo importa la codificación. Hay algunas excepciones; por ejemplo, una mayúscula iestá Ien la mayoría de los idiomas pero İen turco ( tr_TR).
- Establezca
LC_MESSAGESel idioma en el que desea ver los mensajes.
- Establecer
LC_PAPERa en_USsi desea carta de los EEUU para ser el tamaño de papel predeterminado y casi cualquier otra cosa (por ejemplo en_GB) si desea A4.
- Opcionalmente, configure
LC_TIMEsu formato de hora favorito.
Como se explicó anteriormente, evite configurar LC_COLLATEy LC_NUMERIC. Si usa LANG, anule explícitamente estas dos categorías configurándolas en C.
LC_PAPER. ¿Y puedo actualizar esto en todo el sistema sin reiniciar?/etc/default/locale. Estos archivos surten efecto cuando inicia sesión; puede hacerloexport LC_PAPER=…en un shell para afectar los comandos iniciados desde ese shell