---
title: Capítulo 22. Localización - Uso y configuración de I18N/L10N
part: Parte III. Administración del sistema
prev: books/handbook/virtualization
next: books/handbook/cutting-edge
showBookMenu: true
weight: 26
params:
  path: "/books/handbook/l10n/"
---

[[l10n]]
= Localización - Uso y configuración de I18N/L10N
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 22
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/l10n/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[l10n-synopsis]]
== Sinopsis

FreeBSD es un proyecto muy distribuido, que cuenta con usuarios y contribuidores por todo el mundo. Este capítulo examina las funcionalidades de internacionalización y localización de FreeBSD que permiten llevar a cabo su trabajo a los usuarios no angloparlantes. Hay muchos aspectos en la implementación de la i18n, tanto en los niveles de sistema como de aplicación, así que cuando sea conveniente dirigiremos al lector a fuentes de documentación más específicas.

Tras leer este capítulo, sabrá:

* Cómo se codifican los distintos idiomas y "locales" en los sistemas operativos modernos. 
* Cómo configurar las "locales " para su intérprete de órdenes.
* Cómo configurar la consola para idiomas distintos al inglés.
* Cómo emplear efizcamente el sistema de ventanas X en distintos idiomas.
* Dónde encontrar más información sobre como escribir aplicaciones que sigan la i18n.

Antes de leer este capítulo, debería:

* Saber como instalar aplicaciones adicionales de terceras partes (crossref:ports[ports,Instalación de aplicaciones: «packages» y ports]).

[[l10n-basics]]
== Lo básico

=== ?Qué es I18N/L10N?

Los desarrolladores acortaron la palabra internacionalización al término I18N, contando el número de letras entre la primera y la última letra. L10N sigue el mismo esquema, y procede de "localización". Combinados, los métodos, protocolos y aplicaciones de I18N/L10N permiten a los usuarios usar el idioma de su elección. 

Las aplicaciones I18N se programan usando herramientas de I18N de bibliotecas. Éstas permiten a los desarrolladores escribir un fichero sencillo y traducir los menús y textos contenidos a cada idioma. Animamos fervientemente a los programadores a que sigan esta convención.

=== ?Por qué debería usar I18N/L10N?

I18N/L10N se usa siempre que quiera ver, introducir o procesar datos en idiomas distintos al inglés.

=== ?Qué idiomas están soportados en el proyecto de I18N?

La I18N y L10N no son específicos de FreeBSD. En la actualidad, uno puede elegir entre la mayoría de los principales idiomas del mundo, incluyendo pero sin limitarse a ellos: chino, alemán, japonés, coreano, francés, ruso, vietnamita y otros.

[[using-localization]]
== Uso de la localización

En todo su esplendor, la I18N no es específica de FreeBSD, y es una convención. Le animamos a que ayude a FreeBSD siguiendo esta convención.

Las opciones de localización se basan en tres términos principales: código de idioma, código de país y codificación. Los nombres de las "locales" se construyen a partir de estas tres partes como sigue:

[.programlisting]
....
CódigoDelIdioma
      _CódigoDelPaís.
      Codificación
....

=== Códigos de idioma y país

Para localizar un sistema FreeBSD a un idioma concreto (o cualquier otro sistema de tipo UNIX(R) que soporte I18N), los usuarios necesitar averiguar los códigos del país e idioma concreto (los códigos de país le dicen a las aplicaciones que variedad del idioma dado deben usar). Además, los navegadores web, servidores SMTP/POP, servidores web, etc toman decisiones basándose en ellos. Los siguientes son ejemplos de códigos de idioma/país:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Código de idioma/país
| Descripción

|en_US
|Inglés - Estados Unidos de América 

|ru_RU
|Ruso de Rusia

|zh_TW
|Chino tradicional de Taiwán
|===

=== Codificaciones

Algunos idiomas usan codificaciones distintas al ASCII que son de 8 bits, caracteres anchos o multibyte; consulte man:multibyte[3] para conocer más detalles. Algunas aplicaciones más antiguas no los reconocen y los confunden con caracteres de control. Las aplicaciones modernas normalmente reconocen los caracteres de 8 bits. Dependiendo de la implementación, los usuarios pueden necesitar compilar una aplicación con soporte para caracteres anchos o multibyte, o configurarlo correctamente. Para poder introducir y procesar caracteres anchos o multibyte, la Colección de "Ports" de FreeBSD proporciona diferentes programas a cada idioma. Diríjase a la documentación de I18N del " port" de FreeBSD correspondiente.

Específicamente, los usuarios necesitan mirar la documentación de la aplicación para decidir como configurarla correctamente o pasar valores correctos al configure/Makefile/compilador.

Algunas cosas a tener presentes son:

* Los juegos de caracteres de tipo char de C específicos para el idioma (consulte man:multibyte[3]), v.g. ISO-8859-1, ISO-8859-15, KOI8-R, CP437.
* Las codificaciones anchas o multibyte, v.g. EUC, Big5 .

Puede comprobar la lista activa de juegos de caracteres en el http://www.iana.org/assignments/character-sets[Registro IANA].

[NOTE]
====
Las versiones 4.5 y posteriores de FreeBSD usan en su lugar codificaciones de la "locale" compatibles con X11.
====

=== Aplicaciones I18N

En el sistema de paquetes y ports de FreeBSD, las aplicaciones I18N se han denominado con `I18N` en su nombre para una fácil identificación. Sin embargo, no siempre soportan el idioma necesitado.

[[setting-locale]]
=== Configuración de las "locales"

Normalmente basta con exportar el valor del nombre de la "locale" como `LANG` en el intérprete de órdenes de la sesión. Esto se podría hacer en el fichero [.filename]#~/.login_conf# del usuario o en el fichero de inicio del intérprete de órdenes del usuario ([.filename]#~/.profile#, [.filename]#~/.bashrc#, [.filename]#~/.cshrc#). No es necesario configurar las otras variables de localización como `LC_CTYPE` o `LC_CTIME`. Diríjase a la documentación de FreeBSD específica de su idioma para más información.

Debería configurar las siguientes dos variables de entorno en sus ficheros de configuración:

* `LANG` para las funciones de la familia man:setlocale[3] de POSIX(R) 
* `MM_CHARSET` para el juego de caracteres MIME de las aplicaciones

Esto comprende la configuración del intérprete de órdenes del usuario, la configuración específica de la aplicación y la configuración de X11.

==== Métodos de configuración de las " locales"

Hay dos métodos para configurar las " locales", que se describen aquí abajo. El primero (que es el recomendado) es asignar las variables de entorno en una <<login-class,clase de sesión>>, y el segundo es añadir las asignaciones de las variables de entorno al <<startup-file,fichero de inicio>> del intérprete de órdenes del sistema.

[[login-class]]
===== Método de las clases de sesión

Este método permite asignar las variables de entorno necesarias para el nombre de las "locales " y el juego de caracteres MIME de una sola vez para todos los posibles intérpretes de órdenes, en vez de añadir asignaciones específicas en los ficheros de inicio de cada uno de los intérpretes de órdenes. La <<usr-setup,configuración a nivel de usuario>> la puede realizar el propio usuario, mientras que la <<adm-setup, configuración a nivel de administrador>> precisa de permisos de superusuario.

[[usr-setup]]
====== Configuración a nivel de usuario

Esto es un ejemplo minimalista de un fichero [.filename]#.login_conf# de la carpeta de inicio de un usuario, que contiene las dos variables configuradas para la codificación Latin-1: 

[.programlisting]
....
me:\
	:charset=ISO-8859-1:\
	:lang=de_DE.ISO8859-1:
....

Esto es un ejemplo de un [.filename]#.login_conf# que configura las variables para el chino tradicional en la codificación BIG-5. Observe que se configuran muchas más variables porque algunos programas no respetan correctamente las variables de las "locales" para el chino, el japonés y el coreano.

[.programlisting]
....
#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
	:lang=zh_TW.Big5:\
	:lc_all=zh_TW.Big:\
	:lc_collate=zh_TW.Big5:\
	:lc_ctype=zh_TW.Big5:\
	:lc_messages=zh_TW.Big5:\
	:lc_monetary=zh_TW.Big5:\
	:lc_numeric=zh_TW.Big5:\
	:lc_time=zh_TW.Big5:\
	:charset=big5:\
	:xmodifiers="@im=xcin": #Setting the XIM Input Server
....

Consulte la <<adm-setup, configuración a nivel de administrador>> y man:login.conf[5] para conocer más detalles. 

[[adm-setup]]
===== Configuración a nivel de administrador

Compruebe que la clase de sesión en [.filename]#/etc/login.conf# establece el idioma adecuado. Asegúrese de que estas opciones aparecen en [.filename]#/etc/login.conf#:

[.programlisting]
....
nombre_del_idioma:título_cuentas:\
	:charset=juego_de_caracteres_MIME:\
	:lang=nombre de la locale:\
	:tc=default:
....

Así que, si seguimos con nuestro ejemplo anterior que usaba Latin-1, tendría este aspecto:

[.programlisting]
....
german:German Users Accounts:\
	:charset=ISO-8859-1:\
	:lang=de_DE.ISO8859-1:\
	:tc=default:
....

===== Modificación de las clases de sesión con man:vipw[8]

Utilice `vipw` para añadir nuevos usuarios, y haga que la entrada tenga este aspecto:

[.programlisting]
....
usuario:contraseña:1111:11:idioma:0:0:Nombre de usuario:/home/usuario:/bin/sh
....

===== Modificación de las clases de sesión con with man:adduser[8] 

Utilice `adduser` para añadir nuevos usuarios, y haga lo siguiente: 

* Establezca `defaultclass = idioma` en [.filename]#/etc/adduser.conf#. Recuerde que en este caso debe introducir una clase `default` (por omisión) para todos los usuarios de otros idiomas.
* Una variante alternativa es contestar el idioma indicado cada vez que man:adduser[8] muestre 
+
[source,shell]
....
Enter login class: default
		  []: 
....

* Otra alternativa es utilizar lo siguiente para cada usuario de un idioma diferente al que desee añadir:
+
[source,shell]
....
# adduser -class
		  idioma
....

===== Modificación de las clases de sesión con man:pw[8]

Si utiliza man:pw[8] para añadir nuevos usuarios, llámelo de esta manera:

[source,shell]
....
# pw useradd
	      nombre_usuario -L
	      idioma
....

[[startup-file]]
===== Método de los ficheros de inicio de los intérpretes de órdenes

[NOTE]
====
No se recomienda este método porque precisa de una configuración diferente para cada intérprete de órdenes que se pueda elegir. Utilice en su lugar el <<login-class,método de las clases de sesión>>.
====

Para añadir el nombre de la "locale " y el juego de caracteres MIME, simplemente establezca las dos variables de entorno mostradas abajo en los ficheros de inicio del intérprete de órdenes [.filename]#/etc/profile# y/o [.filename]#/etc/csh.login#. Aquí abajo usaremos el idioma alemán como ejemplo:

En [.filename]#/etc/profile#:

[.programlisting]
....
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET
....

O en [.filename]#/etc/csh.login#:

[.programlisting]
....
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1
....

Como alternativa, puede añadir las instrucciones anteriores a [.filename]#/usr/shared/skel/dot.profile# (similar a lo que se utilizó antes en [.filename]#/etc/profile# ), o [.filename]#/usr/shared/skel/dot.login# (similar a lo que se utilizó antes en [.filename]#/etc/csh.login#).

Para X11:

En [.filename]#$HOME/.xinitrc#:

[.programlisting]
....
LANG=de_DE.ISO8859-1; export LANG
....

O:

[.programlisting]
....
setenv LANG de_DE.ISO8859-1
....

En función de su intérprete de órdenes (vea más arriba).

[[setting-console]]
=== Configuración de la consola

Para todos los juegos de caracteres representables con el tipo char en C, establezca los tipos de letra para la consola adecuados para el idioma en cuestión en [.filename]#/etc/rc.conf# con:

[.programlisting]
....
font8x16=nombre_del_tipo_de_letra

font8x14=nombre_del_tipo_de_letra
font8x8=nombre_del_tipo_de_letra
....

Aquí, el _nombre_del_tipo_de_letra_ se toma del directorio [.filename]#/usr/shared/syscons/fonts#, sin el sufijo [.filename]#.fnt#.

Asegúrese también de configurar los mapas de teclado y pantalla correctos para su juego de caracteres C por medio de `sysinstall` (`/stand/sysinstall` en versiones de FreeBSD anteriores a la 5.2). Una vez dentro de sysinstall , seleccione [.guimenuitem]#Configure#, y después [.guimenuitem]#Console#. Como alternativa, puede añadir lo siguiente en [.filename]#/etc/rc.conf#:

[.programlisting]
....
scrnmap=nombre_del_mapa_de_pantalla
keymap=nombre_del_mapa_de_teclado
keychange="secuencia número_tecla_de_función"
....

Aquí, el _nombre_del_mapa_de_pantalla_ se toma del directorio [.filename]#/usr/shared/syscons/scrnmaps#, sin el sufijo [.filename]#.scm#. Normalmente es necesario un mapa de pantalla ("screenmap") con un tipo de letra correspondiente para poder extender de 8 a 9 bits la matriz de caracteres de una tarjeta VGA en un área pseudográfica, es decir, desplazar las letras fuera de ese área si el tipo de letra de pantalla usa una columna de 8 bits.

Si tiene habilitado el dæmon moused  por configurar esto en su [.filename]#/etc/rc.conf#:

[.programlisting]
....
moused_enable="YES"
....

entonces estudie la información sobre el cursor del ratón del siguiente párrafo.

Por omisión, el cursor del ratón del controlador man:syscons[4] ocupa el intervalo 0xd0-0xd3 del juego de caracteres. Si su idioma usa este intervalo, necesita desplazar el intervalo del cursor fuera de él. En versiones de FreeBSD anteriores a la 5.0, introduzca la siguiente línea en la configuración del núcleo:

[.programlisting]
....
options		SC_MOUSE_CHAR=0x03
....

En FreeBSD 4.4 y posteriores, introduzca la siguiente línea en [.filename]#/etc/rc.conf#:

[.programlisting]
....
mousechar_start=3
....

Aquí, el _nombre_del_mapa_de_teclado_ se toma del directorio [.filename]#/usr/shared/syscons/keymaps#, sin el sufijo [.filename]#.kbd#. Si no está seguro de cual mapa de teclado usar, puede usar man:kbdmap[1] para probar los mapas de teclado sin reiniciar.

Normalmente se necesita el `keychange` para programar las teclas de función para que coincidan con el tipo de terminal seleccionado, porque las secuencias de las teclas de función no se pueden definir en el mapa de teclado.

Asegúrese también de configurar el tipo de terminal consola correcto en [.filename]#/etc/ttys# para todas las entradas `ttyv*`. Las correspondencias predefinidas actualmente son:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Juego de caracteres
| Tipo de terminal

|ISO-8859-1 o ISO-8859-15
|`cons25l1`

|ISO-8859-2
|`cons25l2`

|ISO-8859-7
|`cons25l7`

|KOI8-R
|`cons25r`

|KOI8-U
|`cons25u`

|CP437 (predeterminada en VGA)
|`cons25`

|US-ASCII
|`cons25w`
|===

Para los idiomas en caracteres anchos o multibyte, utilice el port correcto de FreeBSD en su directorio [.filename]#/usr/ports/idioma#. Algunos ports aparecen como consola mientras que el sistema los ve como una vtty serie, por lo tanto debe reservar suficientes vtty tanto para X11 como la consola pseudoserie. Aquí tiene una lista parcial de aplicaciones para usar otros idiomas en la consola:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Idioma
| Ubicación

|Chino tradicional (BIG-5)
|package:chinese/big5con[]

|Japonés
|package:japanese/kon2-16dot[] o package:japanese/mule-freewnn[]

|Coreano
|package:korean/han[]
|===

=== Configuración de X11

Aunque X11 no es parte del Proyecto FreeBSD, hemos incluido aquí algo de información para usuarios de FreeBSD. Para más detalles, acuda al http://www.x.org/[sitio web de Xorg] o del servidor X11 que utilice.

En [.filename]#~/.Xresources#, puede afinar más las opciones de I18N específicas de la aplicación (v.g., tipos de letra, menús, etc). 

==== Visualización de los tipos de letra

Instale el servidor Xorg (package:x11-servers/xorg-server[] o el servidor XFree86(TM) (package:x11-servers/XFree86-4-Server[]), y despúes instale los tipos de letra TrueType(R) del idioma. La configuración de la "locale" correcta para el idioma debería permitirle ver el idioma seleccionado en menús y similares.

==== Introducción de caracteres no ingleses

El protocolo Método de Introducción X11 (XIM) es un nuevo estándar para todos los clientes X11. Todas las aplicaciones X11 deberían estar escritas como clientes XIM que reciben entradas de servidores XIM. Hay varios servidores XIM disponibles para distintos idiomas.

=== Configuración de la impresora

Hay algunos juegos de caracteres de tipo char de C que están normalmente codificados por hardware en las impresoras. Los juegos de caracteres anchos o multibyte precisan de una configuración especial y recomendamos el uso de apsfilter. También puede convertir el documento a los formatos PostScript(R) o PDF usando conversores específicos del idioma.

=== El núcleo y los sistemas de ficheros

El sistema de ficheros rápido (FFS) de FreeBSD funciona bien a 8 bits, así que se puede usar con cualquier juego de caracteres de tipo char de C (vea man:multibyte[3]), pero no hay almacenado ningún nombre de juego de caracteres en el sistema de ficheros; es decir, son 8 bits en bruto y no sabe nada acerca del orden de codificación. Oficialmente, FFS no soporta todavía ninguna forma de juegos de caracteres anchos o multibyte. Sin embargo, algunos juegos de caracteres anchos o multibyte tienen parches independientes para habilitar dicho soporte en FFS. Son solamente soluciones temporales no portables o "hacks", y hemos decicido no incluirlas en el árbol de código fuente. Diríjase a los sitios web de los respectivos idiomas para encontrar más información y los parches.

El sistema de ficheros MS-DOS(R)de FreeBSD tiene la capacidad configurable de convertir entre los juegos de caracteres MS-DOS(R), Unicode y los juegos de caracteres seleccionados del sistema de ficheros de FreeBSD. Vea man:mount_msdos[8] para más detalles.

[[l10n-compiling]]
== Compilación de programas con soporte para I18N

Muchos ports de FreeBSD han sido portados con soporte para I18N. Algunos de ellos están marcados con -I18N en el nombre del port. Éstos y muchos otros programas tienen incorporado soporte para I18N y no necesitan ninguna consideración especial.

Sin embargo, algunas aplicaciones como MySQL  necesitan tener el [.filename]#Makefile# configurado con el juego de caracteres específico. Esto se hace normalmente en el [.filename]#Makefile# o pasando un valor a configure en el código fuente.

[[lang-setup]]
== Localización de FreeBSD a idiomas específicos

[[ru-localize]]
=== Idioma ruso (codificación KOI8-R)

Para más información sobre la codificación KOI8-R, vea las http://koi8.pp.ru/[Referencias KOI8-R (Juego de caracteres rusos para la red)].

==== Configuración de la "locale"

Ponga las siguientes líneas en su fichero [.filename]#~/.login_conf#:

[.programlisting]
....
me:My account:\
	:charset=KOI8-R:\
	:lang=ru_RU.KOI8-R:
....

Vea anteriormente en este mismo capítulo ejemplos de configuración de las <<setting-locale,locales>>.

==== Configuración de la consola

* En versiones de FreeBSD anteriores a la 5.0, añada la liguiente línea en el fichero de configuración del núcleo:
+
[.programlisting]
....
options		SC_MOUSE_CHAR=0x03
....
+ 
En FreeBSD 4.4 y posteriores introduzca la siguiente línea en [.filename]#/etc/rc.conf#:
+
[.programlisting]
....
mousechar_start=3
....

* Utilice las siguientes opciones en [.filename]#/etc/rc.conf#:
+
[.programlisting]
....
keymap="ru.utf-8"
scrnmap="utf-82cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
....

* Para cada entrada `ttyv*` en [.filename]#/etc/ttys#, utilice `cons25r` como el tipo de terminal.

Vea anteriormente en este mismo capítulo ejemplos de configuración de la <<setting-console,consola>>.

==== Configuración de la impresora

Dado que la mayoría de las impresoras con caracteres rusos tienen un código de página CP866 en hardware, es necesario un filtro de salida especial para convertir de KOI8-R a CP866. Tal filtro es instalado por omisión como [.filename]#/usr/libexec/lpr/ru/koi2alt#. Una entrada de impresora rusa [.filename]#/etc/printcap# debería tener este aspecto:

[.programlisting]
....
lp|Russian local line printer:\
	:sh:of=/usr/libexec/lpr/ru/koi2alt:\
	:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
....

Consulte man:printcap[5] para una explicación detallada.

==== Sistema de ficheros MS-DOS(R) y nombres de ficheros en ruso

La siguiente entrada man:fstab[5] de ejemplo habilita el soporte para nombres de fichero en ruso en los sistemas de ficheros MS-DOS(R) montados:

[.programlisting]
....
/dev/ad0s2      /dos/c  msdos   rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0
....

La opción `-L` selecciona el nombre de la "locale" usada, y `-W` establece la tabla de conversión de caracteres. Para usar la opción `-W` , asegúrese de montar [.filename]#/usr# antes que la partición MS-DOS(R), porque las tablas de conversión se ubican en [.filename]#/usr/libdata/msdosfs#. Para más información, vea la página de manual man:mount_msdos[8].

==== Configuración de X11

. Antes haga la <<setting-locale, configuración de las "locales" para la consola>> como se ha explicado.
+
[NOTE]
====
[[russian-note]]La "locale " rusa KOI8-R puede no funcionar con versiones antiguas (anteriores a la 3.3) de  XFree86(TM). Xorg  es ahora la versión predefinida del sistema de ventanas X en FreeBSD. Esto no debería ser un problema salvo que esté usando una versión antigua de FreeBSD.
====

. Si utiliza Xorg, instale el paquete package:x11-fonts/xorg-fonts-cyrillic[].
+ 
Compruebe la sección `"Files"` de su fichero [.filename]#/etc/X11/xorg.conf#. Se deben añadir las siguientes líneas _antes_ de ninguna otra entrada `FontPath`:
+
[.programlisting]
....
FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
....
+ 
Si utiliza un modo de vídeo de alta resolución, intercambie las líneas 75 dpi y 100 dpi.
. Para activar un teclado ruso, añada lo siguiente a la sección `"Keyboard"` de su fichero [.filename]#XF86Config#.
+ 
Para XFree86(TM) 3.X:
+
[.programlisting]
....
XkbLayout  "ru"
XkbOptions "grp:caps_toggle"
....
+ 
Para Xorg (o XFree86(TM) 4.X):
+
[.programlisting]
....
Option "XkbLayout"   "us,ru"
Option "XkbOptions"  "grp:toggle"
....
+ 
Asegúrese también de que `XkbDisable` esté desactivado (comentado) allí. 
+ 
Para `grp:caps_toggle` la tecla para pasar entre la codificación rusa y la latina será kbd:[BloqMayús
]. La antigua función de kbd:[
BloqMayús] todavía está disponible a través de kbd:[May+BloqMayús] (sólamente en modo latino). Para `grp:toggle` la tecla para pasar entre la codificación rusa y la latina será kbd:[Alt derecha]. `grp:caps_toggle` no funciona en Xorg por alguna razón desconocida.
+ 
Si en su teclado dispone de teclas "Windows(R) ", y observa que algunas teclas no alfanuméricas están mapeadas incorrectamente en el modo ruso, añada la siguiente línea en su fichero [.filename]#XF86Config#.
+ 
Para XFree86(TM) 3.X: 
+
[.programlisting]
....
XkbVariant "winkeys"
....
+ 
Para Xorg (o XFree86(TM) 4.X): 
+
[.programlisting]
....
Option "XkbVariant" ",winkeys"
....
+
[NOTE]
====
El teclado XKB ruso puede no funcionar con versiones antiguas de XFree86(TM) , vea la <<russian-note, nota anterior>> para más información. El teclado XKB ruso puede no funcionar tampoco con aplicaciones no localizadas.
====

[NOTE]
====
Las aplicaciaones mínimamente localizadas deberían llamar una función `XtSetLanguageProc (NULL, NULL, NULL);` al principio del programa.

Vea http://koi8.pp.ru/xwin.html[KOI8-R para X Window] para más instrucciones sobre la localización de aplicaciones X11.
====

=== Localización al chino tradicional para Taiwán

El proyecto FreeBSD-Taiwán tiene una Guía de chino para FreeBSD en http://netlab.cse.yzu.edu.tw/\~statue/freebsd/zh-tut/[http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/] que utiliza muchos ports chinos. El editor actual del `FreeBSD Chinese HOWTO` es Shen Chuan-Hsing mailto:statue@freebsd.sinica.edu.tw[statue@freebsd.sinica.edu.tw]. 

Chuan-Hsing Shen mailto:statue@freebsd.sinica.edu.tw[statue@freebsd.sinica.edu.tw] ha creado la http://netlab.cse.yzu.edu.tw/~statue/cfc/[ Colección de FreeBSD en chino (CFC)] usando `zh-L10N-tut` de FreeBSD-Taiwán. Los paquetes y los guiones están disponibles en link:ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/[ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/].

=== Localización al idioma alemán (para todos los idiomas ISO 8859-1)

Slaven Rezic mailto:eserte@cs.tu-berlin.de[eserte@cs.tu-berlin.de] ha escrito un tutorial de como usar las diéresis en una máquina FreeBSD. El tutorial está disponible en http://www.de.FreeBSD.org/de/umlaute/[http://www.de.FreeBSD.org/de/umlaute/]. 

=== Localización a los idiomas japonés y coreano

Para el japonés, diríjase a http://www.jp.FreeBSD.org/[http://www.jp.FreeBSD.org/], y para el coreano, acuda a http://www.kr.FreeBSD.org/[http://www.kr.FreeBSD.org/].

=== Documentación sobre FreeBSD en otros idiomas aparte del inglés

Algunos contribuidores de FreeBSD han traducido partes de FreeBSD a otros idiomas. Están disponibles a través de enlaces en el http://www.freebsd.org/[sitio principal] o en [.filename]#/usr/shared/doc#.
