El Traductor Avanzado para NVDA es un complemento que permite traducir textos utilizando diversos servicios de traducción en línea, como Google Translate, DeepL, LibreTranslate y Microsoft Translator. Este complemento ofrece funcionalidades avanzadas como traducción simultánea, historial de traducciones, traducción de lo seleccionado, soporte para múltiples lenguajes y más.
El complemento envía información a Internet a cada servicio correspondiente para realizar la traducción simultánea. Es importante tener en cuenta que la información que se está traduciendo puede incluir datos confidenciales y sensibles. El uso del complemento es responsabilidad exclusiva del usuario, quien debe evaluar la naturaleza de la información que se envía. El desarrollador del complemento no asume ninguna responsabilidad por los datos enviados a los servicios que el complemento utiliza.
Como desarrollador, declino toda responsabilidad por cualquier eventualidad que pueda surgir del uso del complemento. La responsabilidad completa recae en el usuario.
Además, el complemento requiere una conexión a Internet para su funcionamiento. La velocidad de respuesta del complemento depende de varios factores, tales como:
Es recomendable que los usuarios sean conscientes de estos aspectos y realicen las pruebas necesarias para asegurar que el complemento cumple con sus expectativas y requisitos de seguridad.
Información Técnica y Medidas de Seguridad del Complemento para NVDA
He trabajado arduamente para hacer el complemento lo más robusto posible, contemplando y manejando cualquier error potencial. Todos los errores son capturados y registrados en el log de NVDA, lo que facilita el seguimiento y la rápida resolución de inconvenientes.
Problemas con Certificados de Windows
Recientemente, he observado que los ordenadores recién instalados con Windows pueden presentar problemas con los certificados, lo cual puede ser frustrante. Por esta razón, he incorporado una comprobación al inicio del complemento. Si se detecta un fallo relacionado con los certificados, el complemento se encargará de regenerarlos automáticamente, asegurando un funcionamiento correcto tanto de Windows como del propio complemento.
Medidas de Seguridad
El complemento incluye varias medidas de seguridad:
En ocasiones, NVDA puede iniciarse más rápido que la conexión a la red Wi-Fi. En tales casos, será necesario reiniciar NVDA una vez establecida la conexión para poder utilizar el complemento correctamente.
Gestión de Claves API
El complemento genera un archivo JSON que almacena las claves API necesarias para aquellos servicios que las requieren. Este archivo, llamado apis.json
, se aloja en la carpeta de usuario de Windows.
Consideraciones sobre el Archivo de Claves
Se ha decidido almacenar este archivo fuera del entorno del complemento para evitar que, al contener información sensible, pueda ser compartido inadvertidamente con una copia portátil de NVDA o en otras situaciones. Si el usuario decide dejar de utilizar el complemento, deberá eliminar manualmente este archivo.
Estas medidas aseguran una mejor gestión y seguridad del complemento, facilitando su uso y mantenimiento.
En su primera versión, el complemento ofrece 7 servicios de traducción:
4 Servicios de Google
2 Servicios de DeepL
1 Servicio de LibreTranslate
1 Servicio de Microsoft Translate
Estas opciones permiten a los usuarios elegir entre varios servicios de traducción, asegurando la disponibilidad y la flexibilidad del complemento según las necesidades y preferencias individuales.
Conforme el complemento reciba actualizaciones, pueden añadirse o eliminarse servicios. Se informará de los cambios en la sección de actualizaciones.
Configuración del Complemento
En esta sección, se detalla cómo configurar cada uno de los servicios disponibles en el complemento, incluyendo cómo agregar claves API, modificar URL de servicios y otros ajustes necesarios para personalizar el uso del complemento según las necesidades del usuario.
En NVDA > Preferencias > Traductor Avanzado tenemos un menú que contiene lo siguiente:
Configuración de Traductor Avanzado
Si pulsamos esta opción se abrirá la ventana de configuración del complemento. Dicha ventana tiene 2 áreas:
En esta pestaña se agregarán aquellas opciones de carácter general del complemento. Actualmente, solo tiene una casilla de verificación para activar o desactivar la caché del complemento.
El complemento puede guardar una caché de aquellas traducciones para cada aplicación, lo que facilitará la traducción y será más rápido en futuras traducciones. Además, ahora crea caché para cada idioma, pudiendo haber más de una aplicación que tenga caché para distintos idiomas.
En esta pestaña podremos elegir el servicio que deseamos usar para traducir. En aquellos servicios que requieran de clave API, se mostrará también el gestor de claves API.
Podemos tener más de una clave API para un mismo servicio; por ejemplo, en LibreTranslate podemos tener distintas claves y URLs para conectarnos. Podremos añadir, editar, eliminar y poner por defecto la clave API que deseamos para el servicio actual.
El área de gestión de claves API cambia según el servicio que tengamos. Podemos poner un nombre identificativo a cada clave API para saber rápidamente a qué API nos referimos. Cuando tengamos más de una clave API para un servicio, el item que en la lista tenga un asterisco será el que esté por defecto. Esto se puede cambiar con el botón "Por defecto", pasando a ser la definida para dicho servicio la clave que tengamos enfocada en ese momento.
Si el servicio de traducción que elijamos no requiere clave API, el gestor no se mostrará.
Luego tenemos el botón "Aceptar" y "Cancelar". Todas las opciones tienen su tecla de atajo que nos informará NVDA.
Documentación del complemento
Si pulsamos "Documentación del complemento" se abrirá esta documentación.
Invítame a un café si te gusta mi trabajo
Si pulsamos esta opción, se abrirá la página de PayPal donde hay un enlace que dice "Enviar". Si pulsamos dicho enlace, nos pedirá que iniciemos sesión en nuestra cuenta y nos dejará en la página de donaciones.
Solo diré que me he tomado muchos cafés haciendo este complemento.
En NVDA > Preferencias > Gestos de entrada... > Traductor Avanzado tenemos las siguientes teclas que podremos configurar.
Las teclas por defecto vienen sin asignar para que sea el usuario quien elija su mejor distribución. Son las siguientes:
Abre la configuración del complemento
Este acceso nos abrirá rápidamente la configuración del complemento.
Activa o desactiva la caché de traducción
Este acceso activará o desactivará la caché sin necesidad de entrar a la configuración.
Activa o desactiva la traducción simultánea Online
Este acceso activa o desactiva la traducción. Es el acceso principal que nos empezará a traducir conforme nos movamos con las flechas de cursor. Si todo está correcto, oiremos la traducción; en caso de oír el texto original, tendremos que mirar el log de NVDA y ver qué ha sucedido.
Cambiar el módulo de traducción
Este acceso nos abrirá una ventana con todos los servicios de traducción disponibles. Podremos movernos con las flechas y seleccionar con "Intro". El servicio que seleccionemos será el que tengamos por defecto.
Cambiar idioma de destino
Este acceso nos abrirá una ventana con los idiomas de destino disponibles en el servicio que tengamos seleccionado. Cada servicio tiene unos idiomas y, por ejemplo, si estamos traduciendo un texto que está en ruso y queremos oírlo en inglés, en este diálogo tendremos que seleccionar inglés. Nos movemos por el diálogo con flechas de cursor y "Intro" para seleccionar el idioma que deseamos.
Los nombres de los idiomas se obtienen en nuestro lenguaje desde NVDA, admitiendo aquellos que NVDA soporta. Por eso, en la lista pueden aparecer nombres de idiomas que están en inglés, ya que NVDA no los tiene traducidos. Se agrega al lado de cada nombre de idioma el código ISO del idioma.
Cambiar idioma de origen
Lo mismo que el anterior, pero este diálogo solo es válido para el traductor de Microsoft. El servicio de Microsoft no permite poner el idioma de origen como auto para que detecte qué idioma se le envía, por lo que tendremos que elegirlo nosotros.
El resto de los servicios no podrá usar este diálogo ya que su opción por defecto de origen es detectar qué idioma se está enviando.
Copiar el último texto traducido al portapapeles
Este acceso nos copiará al portapapeles el último texto que haya sido traducido.
Eliminar la caché de traducción para la aplicación enfocada actualmente
Si pulsamos este acceso una vez, nos dará información; si lo pulsamos dos veces rápidamente, borrará la caché para la aplicación que en ese momento tenga el foco y nos informará del resultado.
Eliminar todas las traducciones en caché para todas las aplicaciones
Este acceso, pulsado una vez, nos dará información; pulsado dos veces rápidamente, borrará toda la caché del complemento ofreciendo también información.
Muestra el historial de traducción
Mostrará un diálogo con las últimas 500 traducciones en una lista. Podremos buscar y revisar en cuadros de solo lectura el texto origen y el texto traducido. Este diálogo nos permitirá buscar en todo el historial, copiar al portapapeles tanto el texto origen como el texto traducido o ambos.
También permite alternar entre texto origen y texto traducido y trabajar con cualquiera de las dos maneras. Además, podremos borrar todo el historial para empezar desde cero.
Advierto que el historial se borra cada vez que NVDA se reinicia.
Traduce el texto seleccionado
Esta acción traducirá el texto que tengamos seleccionado y enfocado. Si es un texto grande, nos abrirá un diálogo con el porcentaje de la traducción. Dicho diálogo puede ser cancelado, lo que también cancelará la traducción.
Una vez la traducción se complete, el texto será mostrado en un diálogo para que podamos explorarlo.
Esta opción usa el servicio de Google Translate y no puede ser cambiado dicho servicio, siendo elegido internamente ya que es el que mejor resultados da para textos largos.
Conexión a Internet
Errores de Certificados
Problemas de Rendimiento
NVDA > Herramientas > Ver registro
.Agradecer a todos los programadores de NVDA por su excelente trabajo.
Y no quiero dejar de decir que el principio de este complemento es el complemento de Yannick PLASSIARD (TRANSLATE), del cual e aprendido y e usado alguna función.
También a Alexy Sadovoy aka Lex, ruslan, beqa, Mesar Hameed, Alberto Buffolino, and other NVDA contributors también por el complemento (Instant Translate) del cual se obtuvo uno de los métodos para Google y fue modificado para implementarlo en Traductor Avanzado.
Este complemento es el trabajo de varios años sacando versiones no oficiales y el estudio de usar traducciones sin conexión.
El aprendizaje es el resultado de este complemento teniendo en claro que a futuro traerá novedades sorprendentes.
En este apartado se añadira un registro de versiones, donde se iran poniendo las novedades de cada versión.
El manual esta basado en la primera versión por lo que no se actualizara sirviendo como base.
Las novedades se agregarán en esta sección.
Se ha añadido una opción para copiar automáticamente al portapapeles el texto traducido cuando se selecciona esta función, evitando la necesidad de mostrar un cuadro de diálogo adicional.
Dicha opción se añadió en el diálogo de Configuración del complemento en el apartado de General.
Si dicha opción se marca, ya no mostrará el diálogo cuando traduzcamos un texto seleccionado, sino que lo copiará directamente al portapapeles.
Ahora es posible traducir directamente el contenido que se encuentra en el portapapeles, proporcionando una manera rápida y eficiente de traducir textos copiados.
Si no se traduce nada nos dirá que hay en el portapapeles o si no hay nada en el portapapeles nos notificara con un mensaje.
Se ha incorporado una funcionalidad que permite traducir la última frase o texto verbalizado por el sintetizador de voz, mejorando la accesibilidad y usabilidad del complemento.
Si no se puede traducir lo ultimo verbalizado nos dirá lo ultimo que se verbalizo en el idioma origen.
La nueva versión incluye soporte para mostrar las traducciones en dispositivos de línea braille, facilitando el acceso a las traducciones.
Solo funcionara en aquellos equipos que tengan configurada una línea braille.
Esta función esta en fase de pruebas.
Se ha implementado un actualizador que permite mantener los idiomas del complemento siempre actualizados, asegurando la disponibilidad de los idiomas más recientes y precisos.
Ahora en el menú de NVDA > Preferencias > Traductor Avanzado
Tendremos un nuevo item llamado Actualizar idiomas del complemento (Sin actualizaciones).
Dicho item puede que nos informe si existen actualizaciones, por ejemplo:
Actualizar idiomas del complemento (3 actualizaciones disponibles)
Si lo pulsamos nos saldrá un diálogo con los nuevos idiomas, con las actualizaciones o con alguna de las dos si no hay en ambas.
Podremos instalar o omitir.
Si damos a instalar se descargarán los idiomas e instalarán y NVDA se reiniciará.
El item del menú se actualiza cada 30 minutos comprobando si hay actualizaciones o en cada reinicio.
El gasto de datos de esta comprobación es irrisorio por aquellos lugares que tengan problemas de datos es menos de 1kb lo que tiene que comprobar.
Este actualizador facilitara el poder compartir con los usuarios las actualizaciones de los idiomas para el complemento de manera rápida conforme van llegando y sin necesidad de sacar una nueva versión con los nuevos idiomas.
Cada nueva versión del complemento vendrá con todos los idiomas nuevos y actualizados que hayan llegado.
Se ha corregido un problema que causaba errores en la lectura continua, mejorando la estabilidad y el rendimiento del complemento durante el uso prolongado.
A todas las nuevas funciones como traducir el portapapeles, traducir lo ultimo verbalizado por el sintetizador o comprobar actualizaciones de idioma, se le pueden asignar gestos.
Recomiendo que si alguna opción no vamos a usarla no se le agregue gesto de entrada para poder tenerla en otros complementos. Agreguemos aquellas que nos puedan servir.
Conforme se vayan añadiendo utilidades se necesitarán más gestos y puede que una utilidad no sirva a uno y puede que a otro si por lo que asignemos solo los que vayamos a usar.
Este nuevo modulo no necesita de clave API y es utilizado para la traducción simultanea
La Interfaz de Traducción es el componente principal del complemento Traductor Avanzado para NVDA. Esta interfaz permite al usuario traducir texto entre distintos idiomas de manera eficiente, mostrando el texto original y el traducido, y brindando varias opciones de personalización.
Para invocarlo tendremos que asignar una combinación de teclas en el diálogo "Gestos de entrada" o desde el menú virtual (explicado más abajo).
Entrada de texto origen: Permite al usuario escribir o pegar el texto que desea traducir. Se puede acceder rápidamente con la combinación de teclas Alt+1
.
Texto destino (resultado): El área donde se muestra el texto traducido. Este campo es de solo lectura y se puede enfocar con Alt+2
.
Selección de idioma origen: Permite seleccionar el idioma del texto origen. El idioma por defecto es la opción "Auto Detectar", que permite al sistema detectar automáticamente el idioma del texto. Se accede con Alt+3
.
Selección de idioma destino: Permite seleccionar el idioma al cual se quiere traducir el texto. Se puede enfocar con Alt+4
.
Contador de caracteres: Muestra el número de caracteres en el campo de texto de origen. Es útil para conocer la cantidad de texto que será traducido. Se accede con Alt+5
.
Botones de acción:
F3
.Alt+1
: Enfocar el cuadro de texto de origen.Alt+2
: Enfocar el cuadro de texto de destino.Alt+3
: Seleccionar el idioma de origen.Alt+4
: Seleccionar el idioma de destino.Alt+5
: Enfocar el contador de caracteres.F3
: Pegar el texto traducido en la ventana activa.Esc
: Cerrar el diálogo de traducción.Cuando el usuario utiliza la opción Escuchar tras realizar una traducción, el complemento convierte el texto traducido en un archivo de audio y lo reproduce a través de un reproductor integrado. Este reproductor incluye controles básicos y avanzados para gestionar la reproducción de audio.
Botones de control:
Volumen y velocidad:
Texto asociado: Muestra el texto traducido en un cuadro de solo lectura, permitiendo al usuario visualizar lo que está siendo reproducido.
Guardar: Permite guardar el archivo de audio generado en formato WAV en el sistema del usuario.
Cerrar: Cierra el reproductor y libera los recursos asociados.
F1
: Atrasar la reproducción.F2
: Reproducir o pausar el audio.F3
: Adelantar la reproducción.F4
: Detener la reproducción.F5/F6
: Ajustar el volumen.F7/F8
: Cambiar la velocidad de reproducción.F9
: Información del tiempo de la reproducción.Shift+F10/Aplicaciones
: En los botones atrasar y adelantar desplegará un menú contextual para elegir el tiempo correspondiente.Shift+F10
) o tecla aplicaciones.Se a agregado un menú virtual el cual contiene todas las opciones que el complemento tiene.
Podremos invocar desde el menú virtual todas las opciones que podemos asignar en el diálogo de "Gestos de entrada", de esta manera desde el menú virtual el complemento puede ser usado totalmente sin necesidad de tener más teclas asignadas al complemento.
Esto ya queda a gusto del usuario.
Para poder invocar el menú virtual tendremos que asignarle una tecla en el diálogo de "Gestos de entrada".
El uso del menú virtual es sencillo, una vez invocado tendremos que pulsar la tecla correspondiente para la acción que deseemos ejecutar.
Una vez pulsada se ejecutara y siempre se nos informara de lo realizado, si pulsamos una tecla que no esta asignada el menú virtual se cerrara y también podemos cerrarlo con escape.
El menú virtual del Traductor Avanzado te permite acceder rápidamente a las funciones más útiles del complemento. A continuación, te presentamos los atajos que puedes usar para realizar varias acciones:
P
: Abre la configuración del complemento
Abre la configuración del Traductor Avanzado donde puedes ajustar los idiomas y servicios de traducción.
U
: Comprueba si hay actualizaciones de idioma del complemento
Busca y descarga las actualizaciones disponibles para los idiomas del complemento.
O
: Cambia el idioma de origen del traductor
Cambia el idioma del texto que deseas traducir (idioma de origen).
D
: Cambia el idioma de destino del traductor
Cambia el idioma al que deseas traducir el texto (idioma de destino).
C
: Cambia el módulo de traducción
Permite cambiar entre los servicios de traducción disponibles, como Google, DeepL, Microsoft, entre otros.
A
: Elimina todas las traducciones en caché para todas las aplicaciones
Borra todas las traducciones almacenadas en caché.
X
: Elimina la caché de traducción para la aplicación enfocada actualmente
Borra las traducciones en caché solo para la aplicación que tienes abierta.
G
: Activa o desactiva la caché de traducción según el estado actual
Activa o desactiva la función de caché que guarda temporalmente las traducciones.
L
: Copia el último texto traducido al portapapeles si no hay una traducción en curso
Copia la última traducción realizada al portapapeles para que puedas pegarla donde la necesites.
B
: Traduce el contenido del portapapeles
Traduce el contenido actual del portapapeles.
V
: Traduce el último texto verbalizado
Traduce el último texto que NVDA haya leído en voz alta.
T
: Activa o desactiva la traducción simultánea Online
Activa o desactiva la traducción automática mientras navegas por textos.
S
: Traduce el texto seleccionado
Traduce el texto que has seleccionado en la aplicación.
Z
: Traduce texto del objeto del navegador
Traduce el texto de un objeto específico dentro del navegador, como un botón o un cuadro de texto.
W
: Interfaz de traducción
Abre la ventana gráfica donde puedes introducir manualmente el texto que deseas traducir.
I
: Detecta el idioma seleccionado
Detecta automáticamente el idioma del texto seleccionado.
J
: Activa o desactiva el intercambio automático si el origen detectado coincide con el destino
Activa o desactiva el intercambio automático si el idioma de origen detectado coincide con el idioma de destino.
K
: Intercambia el idioma principal con el idioma alternativo
Intercambia el idioma principal con el idioma alternativo en la configuración del traductor.
H
: Muestra el historial de traducción
Muestra un historial de las traducciones recientes realizadas.
F1
: Muestra un diálogo con la lista de comandos de una sola tecla
Muestra un diálogo con la lista de comandos de una sola tecla para el Traductor Avanzado.
Esta opción permite detectar automáticamente el idioma del texto que hayas seleccionado en cualquier aplicación. Para usar esta función:
Esta función es útil para evitar confusiones al traducir textos en los que el idioma de origen es igual al de destino, cambiando automáticamente a un idioma alternativo configurado.
Se ha agregado la funcionalidad para mostrar ayuda contextual en los diálogos del complemento. Al presionar la combinación de teclas Ctrl+H
, se mostrará una pequeña descripción de la función del widget que está actualmente enfocado.
En cualquier parte de los diálogos del complemento, si necesitas información sobre la función de un botón, cuadro de texto, deslizador u otro control, simplemente puedes pulsar Ctrl+H
. Esto mostrará una breve descripción del widget enfocado, proporcionando una guía rápida sobre su uso.
Esta funcionalidad permite traducir el texto de un objeto específico dentro del navegador o cualquier otra aplicación que NVDA esté utilizando. Se puede activar a través del menú virtual o mediante una combinación de teclas asignada en el diálogo de "Gestos de entrada" del complemento.
Traduce cualquier texto contenido en el objeto seleccionado dentro de una página web, aplicación o cualquier otra interfaz donde NVDA interactúe.
Útil para traducir pequeños fragmentos de texto que no son parte del cuerpo principal de una página o aplicación, como menús, botones, o etiquetas.
Si el objeto no contiene texto o es inaccesible, el complemento mostrará un mensaje informando que no hay texto para traducir.
Puedes acceder a esta funcionalidad tanto desde el menú virtual del complemento como configurando una tecla de acceso rápido en el diálogo de "Gestos de entrada" de NVDA.
Se a agregado un nuevo modulo para traducir con OpenAI con el modelo chatGPT-4º-mini que es el más barato y rápido.
Este modulo esta en pruebas teniendo algunas veces un poco de lag, pero mejorara en futuras versiones.
Este modulo necesita que se asigne una clave API en el diálogo de "Configuración del complemento" en la pestaña "Módulos de traducción".
OpenAI es de pago por lo que es función del usuario comprobar su gasto.
En el siguiente enlace se puede mirar el gasto que llevamos:
https://platform.openai.com/usage
El modulo del traductor de Microsoft a sido escrito desde cero y mejorado la rapidez, estabilidad y el poder tener más tiempo de traducción hasta que bloqueen por uso y tengamos que esperar unos minutos para volver a traducir.
Ahora en las pruebas realizadas y traduciendo simultáneamente bastante texto más de un uso normal no e sufrido ninguna restricción.
Por lo que de momento funciona y se a mejorado respecto al modulo anterior.
Ahora siempre devolverá idiomas de código ISO 639-1 en la función obtenerLenguaje del manager de configuración.
Importación del módulo html: Se ha añadido import html para utilizar la función html.unescape(), la cual desescapa todas las entidades HTML, incluidas las numéricas como (').
Eliminación de código innecesario: Se han eliminado los métodos _load_html_entities y unescape, ya que ahora se utiliza html.unescape() en los módulos de Google web.