Los gestos definidos originalmente en NVDA están adaptados a la distribución de teclado inglesa y a programas en inglés. En la mayor parte de los casos, estos gestos pueden ejecutarse en otras distribuciones de teclado sin problema. Sin embargo, en ocasiones un gesto definido por NVDA no se adapta a un idioma específico (distribución de teclado o software). La necesidad de modificar un gesto original puede darse por las siguientes razones:

  • El gesto original se ha definido con un carácter que no es un nombre de tecla en la distribución de teclado del idioma. Generalmente, los nombres de las teclas son los caracteres que pueden introducirse sin la ayuda de una tecla modificadora (shift, control, etc.)
  • El gesto original aprovecha la ventaja de la ubicación física de las teclas de la distribución de teclado inglesa, pero esta ventaja no se percibe con la distribución de teclado del idioma.
  • Se define el gesto original para que coincida con un atajo de Windows o de una aplicación, pero el atajo en la versión local de Windows o de la aplicación no es el mismo que en inglés.

En todos estos casos, NVDA permite reasignar estos gestos para un idioma específico.

Ejemplos de modificaciones de un archivo gestures.ini

A continuación se encuentran tres ejemplos detallados de archivos gestures.ini correspondientes a las tres situaciones listadas donde podrían ser necesarias reasignaciones de gestos.

Ejemplo 1: el gesto original se define con un carácter que no corresponde a un nombre de tecla válido en la distribución de teclado del idioma

En la versión original en inglés, los scripts para hacer clic con los botones izquierdo y derecho del ratón (distribución portátil) se ejecutan con NVDA+[ y NVDA+], respectivamente. En la distribución de teclado inglesa, las teclas [ y ] son las dos que se encuentran a la derecha de la tecla P.
En la distribución de teclado italiana, los caracteres [ y ] sólo pueden introducirse con la ayuda de la tecla modificadora AltGr: AltGr+è y AltGr+Más, respectivamente. Por tanto, los traductores italianos decidieron reasignar estos scripts a las dos teclas a la derecha de la P en la distribución de teclado italiana, è y +. Para hacerlo, añadieron las siguientes líneas en el archivo gestures.ini:

[globalCommands.GlobalCommands]
    leftMouseClick = kb(laptop):NVDA+è
    rightMouseClick = kb(laptop):NVDA+plus

Ejemplo 2: el gesto original aprovecha la ventaja de la ubicación física de las teclas

Mirando de nuevo a los scripts para hacer clic con los botones izquierdo y derecho del ratón (distribución portátil), vemos que originalmente están asignados (en inglés) a dos teclas vecinas. Esto recuerda a los botones izquierdo y derecho del ratón.
Como se vio en el ejemplo 1, muchos traductores han tenido que modificar estas teclas. La mayoría de ellos (si no todos) han elegido dos teclas vecinas. Por ejemplo, en el archivo gestures.ini francés se añadieron las siguientes líneas:

[globalCommands.GlobalCommands]
    None = kb(laptop):nvda+[, kb(laptop):nvda+control+[, kb(laptop):nvda+], kb(laptop):nvda+control+], kb(laptop):nvda+shift+., kb(laptop):nvda+., kb(laptop):nvda+control+.
    leftMouseClick = kb(laptop):nvda+ù
    rightMouseClick = kb(laptop):nvda+*

Los caracteres ù y * en la distribución francesa no están en la misma ubicación que [ y ] en la distribución inglesa, pero también son teclas vecinas.
Yendo más allá, aquí podemos ver que NVDA+[ y NVDA+] se han asignado a None, entre otras, para dejar sin asignar estos gestos. Para la distribución en francés (Francia), no era algo obligatorio, ya que no hay posibilidad de pulsar NVDA+[ y NVDA+] sin otras teclas modificadoras.

Ejemplo 3: el gesto original se ha definido para que coincida con un atajo nativo

NVDA proporciona un script para el objeto de documento de Word llamado toggleBold. Este script se encuentra asignado al mismo gesto del atajo nativo de Word para poner el texto en negrita, control+b en la versión en inglés de Word. Sin embargo, en la versión en francés de Word, el atajo para poner el texto en negrita es control+G. La g viene de «gras», que significa «negrita» en francés. Las siguientes líneas se añadieron al archivo gestures.ini francés para reasignar este script:

[NVDAObjects.window.winword.WordDocument]
    None = kb:control+b, kb:control+[, kb:control+], "kb:control+shift+,", kb:control+shift+., kb:control+l, kb:control+r
    toggleBold = kb:control+g, kb:control+shift+b

Podemos ver que la asignación de control+b se ha eliminado. Esto es necesario porque corresponde a otra orden de la versión en francés de Word.
No se ha hecho una reasignación para el script toggleItalic, ya que el atajo es el mismo en las versiones inglesa y francesa de Word.

Cómo reasignar una tecla de atajo

Identificación de la clase, el script y el gesto original a reasignar

Para editar el archivo gestures.ini, tendrás que identificar la clase, el script y el atajo original que quieres reasignar.

Caso de un script de orden global

Si el gesto a reasignar es una orden global, puedes ejecutar los siguientes pasos para descubrir los nombres de la clase y el script de dicha orden:

  • Activa la ayuda de entrada (NVDA+1)
  • Pulsa el gesto que deseas reasignar, por ejemplo NVDA+] (distribución portátil)
  • Desactiva la ayuda de entrada (NVDA+1)
  • Abre el registro (NVDA+f1)
  • Busca la línea correspondiente al momento en el que has ejecutado el gesto, por ejemplo:
    Input help: gesture kb(laptop):NVDA+], bound to script rightMouseClick on globalCommands.GlobalCommands

La información que buscas está en esta línea:

  • nombre del script: rightMouseClick
  • nombre de la clase: globalCommands.GlobalCommands (Observa que siempre es esta clase para las órdenes globales)
  • gesto original: kb(laptop):NVDA+]

Caso de un script de una aplicación específica

En caso de que quieras reasignar un script de una aplicación específica, tendrás que seguir los mismos pasos que vimos para una orden global. Antes de proceder, debes asegurarte de que te encuentras en la aplicación deseada.

Caso de un script específico de un objeto

Los scripts específicos de objeto, como los enlazados a NVDAObjects.window.winword.WordDocument, no disponen generalmente de un mensaje de ayuda, por lo que la técnica anterior no funcionará. Será necesario explorar el código fuente de NVDA para encontrar el nombre de clase y de script del gesto que deseas reasignar.

Edición del archivo gestures.ini

  1. En tu copia local del repositorio ScreenReaderTranslations, comprueba si existe el archivo gestures.ini. Por ejemplo, d:\SVN\SRT\fr\gestures.ini

    • Si este archivo no existe, créalo copiándolo de la última versión de NVDA.
    • Si ya existe, todo está bien.
  2. En este archivo, las secciones corresponden a la clase a la que el script pertenece. Si la clase que buscas no existe, crea una sección para ella.
  3. Bajo la sección deseada, añade una línea correspondiente al nuevo atajo. Por ejemplo:
    toggleBold = kb:control+g, kb:control+shift+b
    Si ya existe una línea con el nombre de script cuyo atajo quieres modificar, añade el nuevo atajo en la misma línea, separando cada atajo de los otros con una coma (,)
  4. Si quieres eliminar la asignación del gesto original, simplemente asígnalo a None. Por ejemplo:
    None = kb:control+b
    Eliminar el atajo asignado original sólo es obligatorio si este atajo no coincide con ningún otro atajo reasignado en ese idioma.
  5. Guarda tu archivo en formato UTF-8.
  6. Envía los cambios al repositorio ScreenReaderTranslations.

Qué ocurre después

El sistema automático de traducciones copiará periódicamente los archivos gestures.ini modificados desde el repositorio ScreenReaderTranslations a la rama beta del repositorio de NVDA.