Localización/Guía
Zona horaria
Para mantener la hora del sistema de forma adecuada a la localización actual, se necesita ajustar la zona horaria. Se pueden encontrar instrucciones para hacerlo en sistemas basados en OpenRC y sistemas basados en systemd dentro del artículo sobre la hora del sistema.
Sistema de localizaciones
¿Qué son las localizaciones?
Una localización es un conjunto de información que muchos programas utilizan para determinar los ajustes específicos de país e idioma. Las localizaciones y sus datos forman parte de la biblioteca del sistema y se encuentran en /usr/share/i18n/locales/ en la mayoría de los sistemas. Una localización, generalmente tiene el nombre de la forma ab_CD
donde ab
representa las dos (o tres) letras del código del idioma (según ISO-639) y CD
representa las dos letras del código del país (según ISO-3166). Las variantes como @euro
o @latin
se suelen agregar a menudo a los nombres de las localizaciones, por ejemplo es_ES@euro
o nan_TW@latin
. Por favor, explore la Wikipedia para obtener más información acerca de las localizaciones y otros artículos relacionados.
Variables de entorno para localizaciones
Las variables que controlan diferentes aspectos de las configuraciones de las localizaciones se muestran abajo. Todas ellas toman un nombre de localización en el formato ab_CD
usado arriba.
Nombre de la variable | Explicación |
---|---|
LANG | Define todos los ajustes de localización de una sola vez mientras que permite personalizaciones individuales utilizando los ajustes LC_* de abajo. |
LC_COLLATE | Define la ordenación alfabética de las cadenas de caracteres. Este afecta, por ejemplo, a la salida de los listados de los directorios mostrados en orden. |
LC_CTYPE | Define las propiedades de gestión de caracteres para el sistema. Esto determina qué caracteres son alfabéticos, numéricos, etc. También determina qué conjunto de caracteres se utiliza, si esto es aplicable. |
LC_MESSAGES | Localizaciones de los programas almacenados en /usr/share/locale/ para aplicaciones que utilicen un esquema de mensajes basado en localizaciones (la mayoría de los programas GNU, leer los siguientes capítulos para obtener información más detallada de cualés son y cómo hacer que estos programas funcionen). |
LC_MONETARY | Define la unidad monetaria y el formato de los números que representan moneda. |
LC_NUMERIC | Define el formato de valores numéricos que no son moneda. Afecta a cosas como el separador de millares y el separador decimal. |
LC_TIME | Define el formato de fecha y hora. |
LC_PAPER | Define el tamaño del papel por defecto. |
LC_ALL | Redefine los demás ajustes. |
Algunos programas se escriben de una forma en la que esperan la ordenación tradicional del alfabeto del idioma inglés, pero algunas localizaciones, mayoritariamente la estonia, utiliza una ordenación diferente. Por lo tanto se recomienda definir explicitamente LC_COLLATE a C cuando se trate de ajustes al nivel de todo el sistema.
No se recomienda el uso de LC_ALL ya que sobrescribe de forma automática las demás variables LC_* (LANG no se ve afectada). Esto significa que los cambios realizados de otra forma se ocultarán hasta que LC_ALL se defina como cadena vacía. Seguramente la mejor opción es no definirla en un fichero de inicio.
La mayoría de los usuarios definirán la variable LANG al nivel global.
Generar localizaciones específicas
La mayoría de los usuarios probablemente solo utilizarán dos localizaciones en su sistema. En el fichero /etc/locale.gen se indica cómo se pueden especificar localizaciones adicionales.
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
Utilizar un valor
@euro
de /usr/share/i18n/SUPPORTED/ como localización cuando se utilice el símbolo monetario del Euro (€) en localizaciones que no estén basadas en UTF-8.El siguiente paso es lanzar locale-gen que generará todas las localizaciones especificadas en el archivo /etc/locale.gen y escribirlas al archivo de localizaciones (/usr/lib/locale/locale-archive).
root #
locale-gen
* Generating 4 locales (this might take a while) with 1 jobs * (1/4) Generating en_GB.ISO-8859-1 ... [ ok ] * (2/4) Generating en_GB.UTF-8 ... [ ok ] * (3/4) Generating de_DE.ISO-8859-1 ... [ ok ] * (4/4) Generating de_DE.ISO-8859-15@euro ... [ ok ] * Generation complete
Verificar que las localizaciones seleccionadas están disponibles con la orden locale -a.
user $
locale -a
C POSIX es_ES es_ES.iso88591 es_ES.iso885915@euro es_ES@euro spanish en_GB en_GB.iso88591 en_GB.utf8 german
Se puede mostar el fichero /usr/lib/locale/locale-archive usando la orden localedef.
user $
localedef --list-archive
Su contenido en crudo se puede mostrar mediante la orden strings.
user $
strings /usr/lib/locale/locale-archive | less
Configurar una localización
OpenRC
Cuando se utiliza OpenRC, los ajustes de la localización se almacenan en variables de entorno. Estas se definen normalmente en el fichero /etc/env.d/02locale (para ajustes que afectan a todo el sistema) y en el fichero ~/.bashrc (para ajustes específicos del usuario). Se pueden encontrar más detalles en el articulo sobre UTF-8. Los ajustes para todo el sistema (/etc/env.d/02locale) se pueden gestionar mediante eselect locale. Por ejemplo, para definir la variable LANG al valor C
:
root #
eselect locale list
Available targets for the LANG variable: [1] C [2] POSIX [3] en_ES [4] en_ES.iso885915 [5] en_ES.utf8 [ ] (free form)
root #
eselect locale set 1
Por supuesto también se puede editar el fichero de forma manual para diversificar las variables de localización.
The command above lists the suffix in lower case without any hyphens, glibc understands both forms of the suffix, many other programs don't. The most common example of which is X. So it is best to always use UTF-8 in preference to utf8.
LANG="es_ES.UTF-8"
LC_COLLATE="C"
In some cases users may notice glitchy non-English representation in some applications like Krusader (https://bugs.kde.org/show_bug.cgi?id=371582). Removing or commenting the LC_ALL=""
line from /etc/env.d/02locale should fix the problem.
También es posible y muy común especialmente en entornos UNIX más tradicionales dejar sin cambiar los ajustes globales, esto es, definiendo la localización global a C
. Los usuarios pueden definir sus localizaciones preferidas en su propio fichero RC del intérprete de comandos.
export LANG="es_ES.UTF-8"
export LC_COLLATE="C"
Otra forma de configurar el sistema es dejarlo en una localización C
por defecto y habilitar a la vez la representación de caracteres UTF-8. Esto se puede realizar utilizando los siguientes ajustes en /etc/env.d/02locale:
LC_CTYPE=de_DE.UTF-8
Al usar el fragmento de código de arriba, los usuarios puede ver los nombres de los ficheros de localización de forma correcta sin necesidad de forzarlos a utilizar siempre el idioma seleccionado.
Una vez definida la localización correcta, asegurarse de actualizar las variables de entorno para avisar al sistema del cambio realizado.
Para una localización por defecto para todo el sistema:
root #
env-update && source /etc/profile
Para una localización específica del usuario:
user $
source ~/.bashrc
Después de esto, se debe reiniciar el servidor X pulsando Ctrl + Alt + Retroceso, salir y volver a entrar con el mismo usuario.
Ahora, verifique que los cambios han surtido efecto:
user $
locale
The values of locale environment variables that have been explicitly set e.g. in an export statement (if using bash) are listed without double quotes. Those whose value has been inherited from other locale environment variables have their values in double quotes.
systemd
En systemd se define la localización con la orden localectl. Comprobar la lista de localizaciones disponibles con:
root #
localectl list-locales
A continuación defina la localización deseada:
root #
localectl set-locale
LANG=es_ES.utf8
Para terminar, compruebe si el resultado es correcto:
root #
localectl | grep "System Locale"
System Locale: LANG=es_ES.utf8
Distribución del teclado para la consola
OpenRC
La distribución del teclado usada por la consola se define en /etc/conf.d/keymaps con la variable keymap. Los valores válidos para esta variable se pueden encontrar en /usr/share/keymaps/SU_ARQUITECTURA/. La arquitectura i386 tiene subdivisiones de disposiciones de teclado (qwerty/, azerty/, etc.). Algunos idiomas tienen mútiples opciones, experimentar con estas opciones para decidir cuál se adapta mejor a las necesidades.
keymap="es"
#keymap="es-cp850"
systemd
En systemd se puede definir el mapa de teclado de la consola con la orden localectl. En primer lugar, comprueba los mapas de teclado disponibles:
root #
localectl list-keymaps
A continuación configurar la disposición del mapa del teclado solicitada:
root #
localectl set-keymap es
Para terminar, compruebe si el mapa de teclado de la consola se definió correctamente:
root #
localectl | grep "VC Keymap"
VC Keymap: es
Mapa de teclado para el servidor X
OpenRC
El mapa de teclado que utiliza el servidor X se especifica en /etc/X11/xorg.conf.d/30-keyboard.conf mediante la opción XkbLayout. Para obtener más detalles, visite la guía de Xorg y el artículo sobre conmutación de la disposición del teclado.
systemd
En systemd el mapa de teclado para el servidor X11 se puede definir mediante la orden localectl. En primer lugar compruebe los mapas de teclado disponibles:
root #
localectl list-x11-keymap-layouts
A continuación configurar el mapa de teclado solicitado para X11:
root #
localectl set-x11-keymap es
Para terminar, compruebe si el mapa de teclado para X11 se definió correctamente:
root #
localectl | grep "X11 Layout"
X11 Layout: es
NLS
Para que la localización basada en mensajes funcione en programas que ofrecen soporte para ello y disponen del ajuste USE nls
(Native Language Support), compilar los programas con este ajuste definido. Las cadenas con los mensajes se instalan en los ficheros /usr/share/locale/<localización>/LC_MESSAGES/<paquete>.mo. La mayoría de los programas que utilizan NLS también necesitan la librería gettext para extraer y utilizar los mensajes apropiados de cada localización. Desde luego, Portage la instalará cuando sea necesaria.
Después de habilitar el ajustes USE nls
probablemente se deba hacer emerge de nuevo de algunos paquetes:
root #
emerge --ask --changed-use --deep --with-bdeps=y @world
LINGUAS
LINGUAS causes packages to implicitly skip locales. When using it, the package manager cannot determine which locales were omitted. Do not use LINGUAS if you intend to redistribute binary packages.
There is also an additional LINGUAS variable that is used by some gettext-based build systems to control which localization files are built and installed. The variable takes in space-separated list of language codes, and a suggested place to set it is /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Añadir la variable LINGUAS. Por ejemplo para español, alemán e inglés:) LINGUAS="es de en"
Con LINGUAS=""
la mayoría de ebuilds deberían instalar únicamente el idioma por defecto del paquete pero ningún fichero LC_MESSAGES
. Tampoco deberían instalar ningún otro paquete de idioma.
Incorrect setting of LINGUAS may lead to incomplete translation of some applications, such as KDE Plasma and its apps. Try to remove LINGUAS and rebuild related packages if you encounter this problem.
L10N
Otra variable USE_EXPAND llamada L10N decide qué soporte de localizaciones extra se va a instalar. Esto se utiliza normalmente para la descarga de paquetes de idiomas adicionales necesitados por los paquetes. Similar a LINGUAS, la variable admite una lista de etiquetas de idioma separadas por espacio y se puede definir en /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Anadir la variable L10N variable. Por ejemplo para el español y el portugués de Brasil:) L10N="es pt-BR"
Para configurarlo por paquete, editar /etc/portage/package.use y prefijar los paquetes de idioma solicitados con "l10n_" tal y como se muestra en el siguiente ejemplo:
app-text/aspell l10n_de l10n_pt_BR
Observe que los códigos de idioma de dos letras comunes (como es
o fr
) son idénticos en LINGUAS y en L10N, las entradas más complejas tienen una sintaxis diferente ya que L10N utiliza etiquetas de idioma IETF (también conocido como BCP 47). Por ejemplo, pt_BR
y sr@latin
en LINGUAS se convierten respectivamente en pt-BR
y sr-Latn
en L10N.
Una lista de valores L10N que se pueden utilizar se ofrece como /usr/portage/profiles/desc/l10n.desc:
user $
grep -i spanish /usr/portage/profiles/desc/l10n.desc
es - Spanish es-419 - Spanish (Latin America) es-AR - Spanish (Argentina) es-CL - Spanish (Chile) es-ES - Spanish (Spain) es-MX - Spanish (Mexico)
Una vez definida la variable USE_EXPAND L10N puede que sea necesario volver a hacer emerge de algunos paquetes:
root #
emerge --ask --changed-use --deep --with-bdeps=y @world
Ver también
- Configurar localizaciones (Manuales de Gentoo)
- Disposición del teclado dentro del artículo sobre Evdev
- Recursos para X
- El símbolo del euro (€) para la consola y en X
Recursos externos
Referencias
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Alexander Holler, Steven Lucy, Benny Chuang, Lars Weiler, Tobias Scherbaum, Flammie Pirinen, , Francisco Blas Izquierdo Riera (klondike)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.