domingo, 18 de enero de 2009

HAL y las lenguas

Tras haber leído las entradas anteriores de esta serie, a un lector poco propenso al estudio de las lenguas ajenas se le puede ocurrir el siguiente silogismo:


Mi inglés es deficiente. HAL habla en inglés. Ergo: ¡adiós, HAL!


Es verdad que HAL entiende nuestras preguntas sólo en su lengua artificial, cuyo léxico se inspira mayormente en el inglés. Pero también es verdad que, como el conjunto de órdenes que usamos es relativamente pequeño, no suele costar esfuerzo aprenderlas desde cero, sin necesidad de referirse a su inspiración anglosajona, y sin necesidad de crear un alias castellanizado para todas ellas. Luego, en relación con las preguntas u órdenes que el usuario formula el silogismo anterior parece exagerado.

Donde sí puede haber problemas lingüísticos, y donde el hipotético silogismo es pertinente, es en lo relativo a las respuestas de HAL, que pueden ser en ocasiones bastante largas y en un inglés sin concesiones.

¿Es necesario dominar la lengua de Shakespeare para entender a HAL? En absoluto. Porque siempre es posible pedirle que nos responda en nuestra lengua nativa, cosa que, salvo excepciones, hará encantado.

Que yo mismo haya elegido verter las respuestas de HAL al inglés es más por razones de uniformidad con las distribuciones que los lectores tengan instalados y ---todo hay que confesarlo--- por gusto propio, que por una necesidad intrínseca.

Consciente de ello, parece oportuno no esperar por más tiempo a dar satisfacción a los acérrimos de Cervantes. Cumpliendo sus deseos y deshaciendo sus silogismos precipitados, aprenderemos, de paso, algunas cosas fundamentales que nos serán de máxima utilidad en el futuro.

Hay varias maneras de hacer que HAL hable como Sancho Panza. La que se propone aquí tiene la ventaja de evitar que nuestras decisiones sobre el idioma afecten al resto de usuarios del sistema. O sea, que vamos a hacer que HAL nos conteste a nosotros en nuestra lengua nativa, pero que se atenga, en sus otras posibles conversaciones simultáneas, a la lengua que los demás interlocutores decidan.

Lo primero que hay saber es que, desde el mismo momento que iniciamos nuestra charla con HAL, hay una serie de aspectos relativos a ella que han quedado establecidos de antemano y sin que nosotros hayamos sido conscientes. Los arquitectos de nuestra distribución son los responsables de haberlos definido por nosotros para nuestro propio beneficio, y el de HAL. Estos aspectos se denominan variables de entorno, porque son aspectos modificables del entorno de diálogo en que nos encontramos de entrada. Sin este entorno preestablecido nos las veríamos negras para entendernos. Gracias a ellas, se dispone de una base de diálogo previa, que posibilita y suaviza la conversación con un ente en principio extraño, como es HAL.

Las variables de entorno relacionadas con nuestro lugar de origen, y que afectan al idioma, y a cosas como el formato de la fecha, el tipo de moneda, las unidades de medida, etc. son de orden local, es decir, sus valores dependen de la lengua que se habla en nuestra "localidad" o de los usos y costumbres de sus habitantes. El valor actual de estas variables de entorno locales, o, en breve, el entorno local (local environment) se puede conocer ---cómo no--- preguntándoselo al propio HAL:

locale

Su respuesta nos da el valor actual de cada variable del entorno local en el formato NOMBRE_DE_LA_VARIABLE=VALOR_ACTUAL:


LANG=es_ES.UTF-8
LANGUAGE=es_ES.UTF-8
LC_CTYPE=es_ES.UTF-8
LC_NUMERIC="es_ES.UTF-8"
LC_TIME=es_ES.UTF-8
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES=es_ES.UTF-8
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=


Si tu HAL está configurado para hablarte en castellano, te mostrará una tabla como la anterior, con los valores de variables empezando por es, y esta discusión parecerá innecesaria, porque HAL ya te está respondiendo, hasta donde sabe y puede, en tu propia lengua. No obstante, sigue leyendo, porque en éste y en los próximos artículos sobre HAL y sus lenguas, van a tratarse otras muchas cosas importantes y básicas, aparte de lo de la lengua.

Si el valor de las variables anteriores no empieza con un es, tienes un HAL configurado para otra lengua, y es necesario que cambies alguna de estas variables. ¿Cómo? Aquí es donde empieza la aventura, que nos llevará a hacer algo más que realizar consultas simples y escuchar las respuestas de HAL.

Hoy damos el primer paso: entender, en lo fundamental, el significado de la respuesta de HAL sobre el entorno local. Al final de este artículo citaré los pasos restantes.

Empecemos, pues, con el significado.

Cada una de las variables de entorno anteriores determina el idioma con que HAL responderá (variables LANG y LANGUAGE) y otros valores relacionados con diversas categorías (local category) de convenciones propias de esa cultura lingüística (variables que empiezan por LC_). No hace falta ahora detenerse en el significado específico de cada una de ellas. Lo fundamental es entender el significado del valor que poseen o pueden poseer.

En el caso de la lista anterior, el valor es el siguiente:

es_ES.UTF-8

Cada elemento de este valor tiene un sentido. En concreto:

IDIOMA_VARIANTE.CODIFICACIÓN

El idioma se representa mediante una abreviatura de dos letras en minúscula: es para español, en para inglés, de para alemán, etc.

La variante lingüística regional se representa también por una abreviatura de dos letras en mayúscula: ES para España, GB para Gran Bretaña, US para USA, etc.

Finalmente, el tipo de codificación, se define después del punto que sucede a la definición de la lengua. Lo normal, hoy en día, es que sea siempre UTF-8. Sin entrar en ninguna consideración técnica, es suficiente saber que este tipo de sistema de codificación permite el uso de varias lenguas (las europeas, el árabe, el hebreo, el japonés, etc.) sin necesidad de plantear soluciones particulares para la presentación de los caracteres de cada lengua, sino una universal para todas ellas.

Con esta somera explicación, nos podemos hacer a la idea de cuál sería el valor que deberían tener las variables de entorno locales según la comunidad lingüística a la que pertenecemos. Unos ejemplos:

  • inglés de Gran Bretaña: en_GB.UTF-8

  • inglés de USA: en_US.UTF-8

  • español de España: es_ES.UTF-8



Y ahora, lo prometido. ¿Qué vamos a tener que saber hacer para configurar las variables de entorno de forma que HAL nos responda en la lengua que deseamos?:

  1. Consultar a HAL sobre las variables comentadas para determinar lo que hay que cambiar.

  2. Pedir a HAL que modifique tales variables suyas.

  3. Consultar a HAL sobre si está disponible el soporte necesario para que los cambios anteriores surtan efecto.

  4. En caso contrario, adoptar el papel de administrador o superusuario para pedir a HAL que realice las modificaciones necesarias de sí mismo y/o ejecute las órdenes que se requieran.



Estas operaciones exigen procedimientos de conversación nuevos y, lo que es más notable, métodos para alterar "en caliente" el propio estado de HAL. El camino se va haciendo, pues, más impredecible, pero, por ello mismo, más interesante.

No hay comentarios:

Publicar un comentario