domingo, 3 de enero de 2016

Las referencias a asignaciones de teclas en scripts para JAWS y la jaqueca de las distribuciones de teclado

Comenzado el 2016 hace poquísimo, me permito contar el problema que hube de enfrentar la última semana de diciembre en la traducción de unos scripts de JAWS para el editor de audio libre Audacity.

Ciertamente los había traducido hace tiempo pero, desde que los autores pensaron que el instalador oficial pueda instalar los scripts en el idioma que el usuario seleccione y no sólo automatizar el proceso en inglés, es natural que, máxime cuando con uno de los autores estoy trabajando codo con codo y está tan interesado en esos pequeños detalles que considerados por el equipo de desarrollo redundan en mejores traducciones, tenga la intención de solucionar la mayor cantidad de problemas conocidos posibles antes de lanzarse el instalador nuevo al público.

En los mensajes de ayuda de teclas rápidas que muestran los scripts para JAWS al pulsar INSERT+H es habitual que, en vez de incluirlas directamente, se incluya un marcador de posición %keyfor(NombreDelScriptCuyaCombinaciónDeTeClasSeHaDeMostrar). Ello obedece a la conveniencia de que así automáticamente estos mensajes de ayuda mostrados en el que en JAWS se denomina el Visualizador Virtual contengan enlaces que, al activarlos, ejecuten el script correspondiente sin presionar el comando en sí; por otro lado, y aún más importante, de este modo se consigue que si el usuario cambia las combinaciones de teclas a través del Asistente de Teclado la ayuda refleje tales modificaciones.

 

Todo eso está muy bien, pero ¿qué pasa cuando en alguna combinación de teclas son parte teclas cuyos símbolos no siempre son los mismos en todos los idiomas, por ejemplo en el caso del script que tantos problemas me dio que estaba asignado a CTRL+SHIFT+`? Quien conozca un poco los teclados en inglés y en español entenderá fácilmente cuál es el problema, a saber, que el signo que representa en inglés la tecla justo encima del tabulador sí es el acento grave pero que, en el teclado español, no es sino el ordinal masculino; este punto lo entendía, porque de hecho ocurre lo mismo con otras teclas como la ñ en lugar del punto y coma o la barra en lugar del guión. Nunca me había puesto a pensar cómo manejar este tipo de diferencias en JAWS porque, aunque el Asistente de Teclado muestra (y los archivos JKM realmente contienen) las combinaciones de teclas conforme la distribución QWERTY de inglés estadounidense, en las ayudas que se terminan de generar en tiempo de ejecución las combinaciones se muestran correctamente y lo atribuía a la detección de la distribución de teclado en uso, como de hecho realmente ocurre al escribir para verbalizar los caracteres que se teclean.

 

El problema que tuve en uno de tantos de los scripts que conforman el mencionado conjunto para Audacity, no obstante, fue que en el mensaje sobre un script asignado a CTRL+SHIFT+` se me imprimía invariablemente `, y sin que hubiera conflicto alguno al mostrarse traducidas teclas como MAYÚS o las Flechas. Podía cambiar el marcador de posición en el mensaje por la combinación de teclas en texto plano y bruto, pero eliminaba funcionalidad. «¡No puede salir esto así al gran público!», me decía internamente, así que…

 

Me di a buscar una solución

Lo primero que recordé fue que en los scripts que vienen con JAWS para mejorar la accesibilidad de Word se puede pulsar CTRL+SHIFT+´ para mostrar una lista de comentarios del documento, de lo que procuré constatar la efectiva exisetncia xistencia de un enlace que literalmente dice Obtener lista de comentarios, Control+Mayúscula+AcentoAgudo. La pregunta obvia: ¿dónde diablos ponen las equivalencias para que la asignación siga siendo CTRL+SHIFT+' pero se muestre el acento agudo?

El primer archivo en que se me ocurrió comprobar fue Word.jkm, abierto no con el Asistente de Teclado sino con el de Scripts que, más allá de sus características de asistencia en la creación y compilación de scripts y funciones es un editor de texto, para buscar si había contenido adicional en la línea del script ListComments. Nada, todo era conforme las convenciones documentadas.

 

Le siguió el archivo de configuración Default.jcf que rige en todas las aplicaciones para las que no haya ajustes específicos, pero en la sección dedicada a los nombres de teclas las letras, símbolos y números eran sendos elementos que ni abiertos con un editor de texto (en este caso el Bloc de Notas) contenían como etiquetas más que las palabras Letras, Símbolos y Números, no teniendo ni qué decir que el infame acento agudo allí no estaba.

 

Como la tercera es la vencida, en Default.jkm busqué la letra ñ, pues de encontrarse llegaría a alguna sección que, al no existir la ñ en inglés, tuviese que ver con la localización sin lugar a dudas. Efectivamente, el primer resultado fue una línea Semicolon=Ñ.

¡Excelente! Ya sólo me quedaba averiguar en qué sección se hallaban las traducciones de tantos símbolos y teclas, para lo cual realicé una búsqueda de un corchete de apertura (el archivo está estructurado como un .Ini con secciones) en dirección hacia Arriba. Había encontrado, al fin, que a tal efecto en Default.jkm hay una sección Translated Key Names.

 

Ocupándome del maldito acento grave

Comprendido el funcionamiento de la sección Translated Key Names, que era lo que buscaba y a fuerza de experimentar que no es posible sobreescribirlas como otras cosas en los archivos específicos para aplicaciones, lo último que tenía que hacer era buscar el ordinal masculino (º) para ver de qué manera(s) estaba incluido el acento grave.

El problema estaba en este archivo propio de JAWS y no en los scripts para Audacity ni en la forma en que había traducido esto, porque a pesar de que el Asistente de Teclado escribe en los archivos JKM el acento grave como ` y así estaba en el archivo Audacity.jkm, en la sección Translated Key Names del archivo Default.jkm de JAWS en español no está ` sino GraveAccent. Al no poder pretender que todos los usuarios de estos scripts modifiquen a su vez el predeterminado de asignaciones de teclas de JAWS opté por modificar Audacity.jkm y, puesto el acento grave con la forma prevista en la sección Translated Key Names de Default.jkm, la combinación de teclas se imprimió bien.

 

Este no es sino un caso más de quebraderos de cabeza o cuanto menos incertidumbres menores respecto a las distribuciones de teclado. Instituir una universal es imposible pues no todos los idiomas tienen el mismo alfabeto ni mucho menos iguales símbolos, aparte de porque las distribuciones QWERTY tienden a reflejar la disposición de las teclas en máquinas de escribir. Sí pienso que los desarrolladores de software deberían, sin embargo, tener más consciencia sobre el particular, ya sea recurriendo a métodos de detección automática o informando a los equipos de traducción diligentemente sobre la distribución del teclado que se emplea como base y cómo realizar las adaptaciones requeridas.

Resulta también importante en juegos, donde para colmo a menudo hay acciones cuyos atajos de teclado se presumen conocidos y no están en menú alguno.

No hay comentarios.:

Publicar un comentario