Localización/Guía

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Localization/Guide and the translation is 100% complete.

Other languages:
čeština • ‎Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎русский

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.
Nota
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.
Advertencia
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.

CÓDIGO Añadir localizaciones a /etc/locale.gen
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
Nota
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.

ARCHIVO /etc/env.d/02localeDefinir la localización por defecto del sistemaen /etc/env.d/02locale
LANG="es_ES.UTF-8"
LC_COLLATE="C"

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.

ARCHIVO ~/.bashrcDefinir la localización del usuario
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:

CÓDIGO Usar una localización C tradicional a la vez que se especifica UTF-8
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

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.

ARCHIVO /etc/conf.d/keymapsDefinir el mapa de teclado de la consola
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

También existe un ajuste USE_EXPAND adicional llamado LINGUAS [1], que afecta a qué ficheros de localización se instalan para los programas basados en gettext. Esta variable toma la forma de códigos de idioma separados por un espacio y un lugar sugerido para definirla es /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.

Se puede mostrar una lista de los programas instalados que hacen uso del ajuste USE_EXPAND LINGUAS y los idiomas soportados de las siguiente forma:

user $eix -I -U linguas

Se puede encontrar una lista de valores para LINGUAS en /usr/portage/profiles/desc/linguas.desc:

user $grep -i spanish /usr/portage/profiles/desc/linguas.desc
es - Spanish locale
es_AR - Spanish locale for Argentina
es_CL - Spanish locale for Chile
es_CO - Spanish locale for Columbia
es_CR - Spanish locale for Costa Rica
es_ES - Spanish locale for Spain
es_LA - Spanish locale for Latin America
es_MX - Spanish locale for Mexico
es_VE - Spanish locale for Venezuela

Después de definir el ajuste USE_EXPANDLINGUAS puede que se necesite volver a hacer emerge de algunos paquetes:

root #emerge --ask --changed-use --deep --with-bdeps=y @world
Nota
Se está reemplazando LINGUAS como variable USE_EXPANDida por la variable L10N (ver abajo). Esto evita un conflicto conceptual con el comportamiento estándar de gettext. Una ve haya transcurrido el periodo de transición en el que se convertirán los paquetes. La variable LINGUAS volverá a ser una variable más del entorno.

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:

ARCHIVO /etc/portage/package.use
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

Recursos externos

Referencias

  1. LINGUAS en la guía de desarrollo de Gentoo

This article 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, nightmorph, klondike
They are listed here as the 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 the history page.