GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo establecer la configuración regional y cuáles son las implicaciones de hacerlo?

Esta pregunta fue estimulada por la pregunta
El navegador Chromium no permite configurar el tamaño de papel predeterminado para "Imprimir en archivo", y también por una conversación con @Gilles en el chat. Como lo señaló @don_crissti, y como lo verifiqué yo, cambiar la configuración regional (al menos LC_PAPER ) hace una diferencia en el tamaño de papel seleccionado.

Nunca había pensado mucho en qué seleccionar, y siempre había optado por en_US.UTF-8 porque parecía una opción predeterminada razonable.

Sin embargo, según @Gilles en el chat (consulte la conversación que comienza en http://chat.stackexchange.com/transcript/message/17017095#17017095). Extractos:

Gilles:LC_PAPER por defecto es $LANG

Gilles:Debes tener LANG=en_US.UTF-8. Esa es una mala idea:establece
LC_COLLATE y eso casi siempre es algo malo

Gilles:LC_COLLATE no describe la intercalación correcta, es demasiado
restrictivo (va carácter por carácter) elimine LANG y en su lugar
establezca LC_CTYPE y LC_PAPER

Gilles:más LC_MESSAGES si desea mensajes en un idioma que no sea
inglés

Claramente, hay problemas aquí de los que no estoy al tanto, y estoy seguro de que muchos otros también lo están. Entonces, ¿qué aspectos debe tener en cuenta al configurar locales y cómo debe configurarlos? Siempre he ejecutado dpkg-reconfigure locales en Debian, y no lo pensé dos veces.

Pregunta específica:¿Debo establecer mi configuración regional en en_IN.UTF-8? ¿Hay algún inconveniente en hacerlo?

Respuesta aceptada:

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 antiguas), los nombres de configuración regional siguen el mismo patrón:

  • Un código de idioma de dos letras en minúscula ISO 639-1 o un código de idioma de tres letras ISO 639-2 si el idioma no tiene un código de dos letras. Por ejemplo, en para inglés, de para alemán, ja para japonés, uk para ucraniano, ber para bereber, …
  • 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_US para inglés estadounidense, en_UK para inglés británico, fr_CA Francés canadiense (Québec), de_DE para alemán de Alemania, de_AT para alemán de Austria, ja_JP para japonés (de Japón), etc.
  • Opcionalmente, un punto . seguido del nombre de una codificación de caracteres como UTF-8 , ISO-8859-1 , KOI8-U , GB2312 , Big5 , etc. Con GNU libc al menos (no sé qué tan extendido está esto), el caso y la puntuación se ignoran en la codificación de nombres. Por ejemplo, zh_CN.UTF-8 es chino mandarín (simplificado) codificado en UTF-8, mientras que zh_CN es chino mandarín codificado en GB2312 y zh_TW es chino taiwanés (tradicional) codificado en Big5.
  • Opcionalmente, un signo de arroba @ seguido del nombre de una variante. El significado de las variantes depende de la configuración regional. Por ejemplo, muchos países europeos tienen un @euro variante 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) utiliza la codificación latin1 (ISO 8859-1) y £ como símbolo de moneda, mientras que [email protected] utiliza la codificación latin9 (ISO 8859-15) y € como símbolo de moneda.

Además, hay dos nombres de configuración regional que existen en todos los sistemas similares a Unix:C y POSIX . Estos nombres son sinónimos y significan informático, es decir, configuraciones predeterminadas que son apropiadas para los datos analizados por un programa informático.

Configuración regional

Las siguientes categorías de configuración regional están definidas por POSIX:

Relacionado:¿Cómo cronometrar varios procesos en segundo plano?

GNU libc, que encontrará en Linux no integrado, define categorías de configuración regional adicionales:

  • LC_PAPER :el tamaño de papel predeterminado (definido por alto y ancho).
  • LC_NAME , LC_ADDRESS , LC_TELEPHONE , LC_MEASUREMENT , LC_IDENTIFICATION :No conozco ninguna aplicación que los use.

Variables de entorno

Las aplicaciones que utilizan configuraciones locales las determinan a partir de variables de entorno.

  • Entonces el valor del LANG La variable de entorno se utiliza a menos que se anule con otra configuración. Si LANG no está configurado, la configuración regional predeterminada es C .
  • El LC_xxx los nombres se pueden usar como variables de entorno.
  • Si LC_ALL está establecido, todos los demás valores se ignoran; esto es principalmente útil para configurar LC_ALL=C ejecutar aplicaciones que necesitan producir el mismo resultado independientemente de dónde se ejecuten.
  • Además, GNU libc usa LANGUAGE para definir alternativas para LC_MESSAGES (por ejemplo, LANGUAGE=fr_BE:fr_FR:en para preferir el francés belga, o si no está disponible el francés francés, o si no está disponible el inglés).

Instalación de locales

Los datos locales pueden ser grandes, por lo que algunas distribuciones no los envían en una forma utilizable y, en su lugar, requieren un paso de instalación adicional.

  • En Debian, para instalar locales, ejecute dpkg-reconfigure locales y seleccione de la lista en el cuadro de diálogo, o edite /etc/locale.gen y luego ejecute locale-gen .
  • En Ubuntu, para instalar locales, ejecute locale-gen con los nombres de los locales como argumentos.

Puede definir su propia configuración regional.

Recomendación

Las configuraciones útiles son:

  • Establecer LC_CTYPE al idioma y la codificación en los que codifica sus archivos de texto. Asegúrese de que sus terminales utilicen esa codificación.
    Para la mayoría de los idiomas, solo importa la codificación. Hay algunas excepciones; por ejemplo, una i mayúscula es I en la mayoría de los idiomas excepto İ en turco (tr_TR ).
  • Establecer LC_MESSAGES al idioma en el que desea ver los mensajes.
  • Establecer LC_PAPER a en_US si desea que US Letter sea el tamaño de papel predeterminado y cualquier otra cosa (por ejemplo, en_GB ) si desea A4.
  • Opcionalmente, establezca LC_TIME a su formato de hora favorito.
Relacionado:¿Permitir que el usuario1 "su - usuario2" sin contraseña?

Como se explicó anteriormente, evite configurar LC_COLLATE y LC_NUMERIC . Si usa LANG , invalide explícitamente estas dos categorías configurándolas en C .


Linux
  1. Linux:¿cómo averiguar qué discos duros hay en el sistema?

  2. ¿Cuál es la diferencia entre env y set (en Mac OS X o Linux)?

  3. ¿Cuáles son las diferencias entre lsof y netstat en Linux?

  4. ¿Cuál es la diferencia entre las configuraciones regionales C.UTF-8 y en_US.UTF-8?

  5. ¿Cómo puedes cambiar las teclas j y k en vim?

¿Qué es un nombre de host bonito y cómo configurarlo?

¿Qué es Intel SGX y cuáles son los beneficios?

Qué son los Snaps y cómo instalarlos en varias distribuciones de Linux

Cómo instalar y configurar SeedDMS

Cómo configurar el nombre de host bonito

¿En qué se parecen el tiempo de CPU y el uso de CPU?