Complemento profesional para NVDA que facilita la traducción de textos en múltiples idiomas utilizando diversos servicios de traducción tanto gratuitos como de pago.
Traductor Avanzado es un complemento para el lector de pantalla NVDA que permite traducir textos de forma rápida y eficiente. Ofrece 9 módulos de traducción online para uso en tiempo real, incluyendo servicios gratuitos como Google Translate, DeepL Free y Microsoft Bing, además de 4 módulos de inteligencia artificial (OpenAI GPT, Claude, Google Gemini y DeepSeek) disponibles exclusivamente para la traducción de archivos y documentos.
El complemento está diseñado para ser accesible, modular y extensible, con una arquitectura que facilita la adición de nuevos servicios de traducción en el futuro.
| Característica | Descripción |
|---|---|
| 9 módulos online + 4 IA | Google (×4), DeepL (×3), LibreTranslate, Microsoft Bing + OpenAI, Claude, Gemini, DeepSeek |
| Traducción simultánea | Traduce en tiempo real todo lo que NVDA verbaliza (solo módulos online) |
| Traducción de archivos con IA | Traduce documentos completos eligiendo servicio online o IA |
| Capa de comandos | 20 acciones rápidas accesibles con una sola tecla |
| Caché inteligente | Almacena traducciones por aplicación para mejorar rendimiento |
| Claves API encriptadas | Las claves se almacenan encriptadas con rotación automática |
| Traducción de archivos | TXT, HTML, CSV, SRT, Markdown, PO/POT, DOCX |
| Reproductor de audio | Escucha las traducciones con control de volumen y velocidad |
| Historial | Registro completo de todas las traducciones realizadas |
| Actualización de idiomas | Descarga automática de nuevos idiomas desde GitHub |
| Ayuda contextual | Pulsa Ctrl+H en cualquier control para obtener ayuda |
| Compatible | NVDA 2025.1 (32 bits) y NVDA 2026.1 (64 bits) |
.nvda-addon desde la página de releases.También disponible en la tienda oficial de complementos de NVDA.
| # | Módulo | Descripción |
|---|---|---|
| 1 | Google Translate (WEB 1) | Usa el endpoint principal de Google Translate vía web |
| 2 | Google Translate (WEB 2) | Endpoint alternativo con User-Agent de Android |
| 3 | Google API Free 1 | API gratuita del cliente de Chrome |
| 4 | Google API Free 2 | Variante alternativa de la API gratuita |
| 5 | DeepL (Free) | Usa la interfaz JSON-RPC de DeepL sin necesidad de cuenta |
| 9 | Microsoft Bing (Free) | API gratuita de Microsoft Bing Translator con token automático |
| # | Módulo | Descripción |
|---|---|---|
| 6 | DeepL (API Free) | API oficial de DeepL con plan gratuito (500.000 caracteres/mes) |
| 7 | DeepL (API Pro) | API oficial de DeepL con plan de pago |
| 8 | LibreTranslate (API) | Servicio de traducción de código abierto auto-hospedable |
ℹ️ Nota: Los módulos de IA están disponibles exclusivamente para la traducción de archivos y documentos a través del menú "Traducir archivo". No están disponibles para la traducción simultánea ni los atajos de teclado, ya que sus tiempos de respuesta (2-10 segundos) no son adecuados para la traducción en tiempo real.
Los resultados pueden variar en calidad según el modelo y el prompt configurado. Se recomienda verificar las traducciones importantes.
| # | Módulo | Descripción |
|---|---|---|
| 10 | OpenAI GPT (API) | Traducción usando modelos GPT de OpenAI (gpt-4o-mini por defecto) |
| 11 | Claude - Anthropic (API) | Traducción usando modelos Claude de Anthropic |
| 12 | Google Gemini (API) | Traducción usando modelos Gemini de Google (gemini-2.0-flash) |
| 13 | DeepSeek (API) | Traducción usando modelos DeepSeek (deepseek-chat) |
Nota: Los módulos marcados con
*en la interfaz del complemento requieren al menos una clave API configurada para funcionar.
Nota: La traducción simultánea solo funciona con los 9 módulos online (Google, DeepL, LibreTranslate, Microsoft Bing). Los módulos de IA no están disponibles para esta función.
La capa de comandos permite ejecutar acciones del complemento con una sola tecla. Se activa pulsando NVDA+Shift+T y se desactiva automáticamente después de ejecutar cualquier acción.
| Tecla | Acción | Descripción |
|---|---|---|
| P | Configuración | Abre el diálogo de configuración del complemento |
| U | Actualizaciones | Comprueba si hay actualizaciones de idiomas disponibles |
| O | Idioma origen | Muestra el idioma de origen actual |
| D | Idioma destino | Muestra el idioma de destino actual |
| C | Cambiar módulo | Cambia al siguiente módulo de traducción |
| A | Borrar toda caché | Elimina toda la caché de traducciones |
| X | Borrar caché app | Elimina la caché de la aplicación enfocada |
| G | Toggle caché | Activa o desactiva la caché de traducción |
| L | Copiar última | Copia la última traducción al portapapeles |
| B | Traducir portapapeles | Traduce el contenido del portapapeles |
| V | Traducir verbalizado | Traduce el último texto que NVDA verbalizó |
| T | Toggle simultánea | Activa o desactiva la traducción simultánea |
| S | Traducir selección | Traduce el texto seleccionado |
| Z | Traducir navegador | Traduce el texto del objeto del navegador |
| W | Interfaz traducción | Abre la interfaz completa de traducción |
| I | Detectar idioma | Detecta el idioma del texto seleccionado |
| J | Toggle intercambio | Activa o desactiva el intercambio automático de idiomas |
| K | Intercambiar idiomas | Intercambia el idioma principal con el alternativo |
| H | Historial | Muestra el historial de traducciones |
| F1 | Lista de comandos | Muestra esta lista de teclas |
Nota: Todos los atajos son configurables desde el menú de NVDA > Preferencias > Gestos de entrada > Traductor Avanzado.
La interfaz de traducción (NVDA+Shift+U o tecla W en la capa de comandos) ofrece:
| Atajo | Control |
|---|---|
| Alt+1 | Campo de texto origen |
| Alt+2 | Campo de texto destino (solo lectura) |
| Alt+3 | Selector de idioma origen |
| Alt+4 | Selector de idioma destino |
| Alt+5 | Contador de caracteres |
| F3 | Pegar la traducción en la aplicación activa |
| Ctrl+H | Ayuda contextual del control enfocado |
| Escape | Cerrar la interfaz |
El complemento soporta la traducción de archivos completos en los siguientes formatos, todos implementados sin necesidad de librerías externas:
| Formato | Extensiones | Descripción |
|---|---|---|
| Texto plano | .txt | Archivos de texto con codificación UTF-8 o Latin-1 |
| HTML | .html, .htm | Extrae texto visible eliminando etiquetas, scripts y estilos |
| CSV | .csv | Archivos de valores separados por comas |
| Subtítulos SRT | .srt | Subtítulos con preservación de tiempos |
| Markdown | .md | Archivos Markdown |
| Gettext PO/POT | .po, .pot | Archivos de traducción gettext (traduce msgstr vacíos) |
| Microsoft Word | .docx | Extrae texto de archivos DOCX (son ZIPs con XML internamente) |
💡 Consejo: Para archivos largos o que requieran mayor calidad, usa los módulos de IA (OpenAI, Claude, Gemini, DeepSeek). Para traducciones rápidas de archivos cortos, los módulos online son más eficientes.
El complemento incluye un reproductor de audio integrado que permite escuchar las traducciones mediante síntesis de voz de Google.
| Control | Descripción |
|---|---|
| Reproducir | Inicia o reanuda la reproducción |
| Pausa | Pausa la reproducción actual |
| Detener | Detiene la reproducción y vuelve al inicio |
| Retroceder | Retrocede N segundos (configurable) |
| Avanzar | Avanza N segundos (configurable) |
| Volumen | Control deslizante de 0% a 100% |
| Velocidad | 0.50x, 0.75x, 1.0x, 1.25x, 1.50x, 1.75x, 2.0x |
| Espacio | Alternar entre reproducir y pausar |
| Escape | Cerrar el reproductor |
El reproductor es compatible con NVDA 2025.1 (Python 3.11, 32 bits) y NVDA 2026.1 (Python 3.13, 64 bits), cargando automáticamente la versión correcta de la biblioteca wx.media.
Accesible desde la capa de comandos (tecla P) o desde el menú de NVDA.
| Opción | Descripción |
|---|---|
| Usar caché de traducción | Almacena traducciones para evitar repetir consultas |
| No mostrar diálogo de resultados | Copia la traducción directamente al portapapeles |
| Intercambio automático | Si el idioma detectado coincide con el destino, intercambia automáticamente |
| Sonidos de la capa de comandos | Reproduce sonidos al activar/desactivar la capa |
| Idioma de traducción | Idioma de destino por defecto |
| Idioma alternativo | Idioma secundario para intercambio rápido |
Esta pestaña permite personalizar el comportamiento de los módulos de inteligencia artificial (OpenAI, Claude, Gemini, DeepSeek).
| Opción | Descripción |
|---|---|
| Servicio de IA | Selecciona el servicio a configurar |
| Modelo | Elige el modelo a utilizar de la lista predefinida |
| Obtener modelos desde la API | Descarga la lista completa de modelos disponibles directamente desde el proveedor (requiere clave API configurada) |
| Prompt de traducción | Personaliza el prompt que se envía al modelo. Usa {src} para idioma origen y {tgt} para idioma destino |
| Restablecer prompt por defecto | Vuelve al prompt original del complemento |
Cada servicio de IA guarda su propia configuración de prompt y modelo de forma independiente.
Para usar DeepL API, LibreTranslate, OpenAI, Claude, Gemini o DeepSeek, necesitas obtener claves API de sus respectivos proveedores:
| Servicio | Dónde obtener la clave |
|---|---|
| DeepL API Free | deepl.com/pro (plan gratuito, 500K caracteres/mes) |
| DeepL API Pro | deepl.com/pro (plan de pago) |
| LibreTranslate | Tu propia instancia o translate.nvda.es |
| OpenAI GPT | platform.openai.com |
| Claude | console.anthropic.com |
| Gemini | aistudio.google.com |
| DeepSeek | platform.deepseek.com |
Si configuras múltiples claves para un mismo servicio, el complemento rotará automáticamente a la siguiente clave cuando una falle o se agote su cuota. Esto es especialmente útil para servicios con límites de uso gratuito.
La caché almacena las traducciones realizadas en archivos JSON dentro del directorio de configuración de NVDA (TranslateAdvancedCache/). Cada aplicación tiene su propio archivo de caché.
El historial almacena las últimas 500 traducciones realizadas (origen y destino). Se accede con la tecla H en la capa de comandos y permite:
El complemento puede descargar tanto traducciones (locale) como documentación traducida de forma independiente desde el repositorio de GitHub.
| Tipo | Contenido | Destino |
|---|---|---|
| locale | Traducciones del complemento (.po) | addon/locale/{idioma}/ |
| doc | Documentación traducida (readme.md) | addon/doc/{idioma}/ |
Los paquetes de idioma se gestionan en el directorio translates/ del repositorio. Consulta translates/README.md para instrucciones sobre cómo crear y gestionar paquetes.
El complemento añade un submenú en Preferencias > Traductor Avanzado con las siguientes opciones:
| Opción | Descripción |
|---|---|
| Configuración de Traductor Avanzado | Abre el diálogo de ajustes |
| Actualizar idiomas del complemento (N disponibles) | Comprueba y descarga actualizaciones. Muestra el número de actualizaciones pendientes |
| Documentación del complemento | Abre esta documentación en el navegador |
| Invítame a un café si te gusta mi trabajo | Enlace de donación vía PayPal |
Las claves API se almacenan encriptadas en el archivo apis.enc dentro del directorio de datos del complemento (TranslateAdvancedData/). La encriptación usa una clave derivada del nombre del equipo y usuario del sistema, lo que garantiza que las claves solo sean legibles en el equipo donde fueron configuradas.
Cuando NVDA se ejecuta en modo seguro (pantallas de inicio de sesión, UAC, etc.), todas las funciones del complemento se desactivan automáticamente por seguridad.
Si creas una copia portable de NVDA para compartirla o distribuirla, ten en cuenta lo siguiente:
TranslateAdvancedData/.apis.enc), la configuración de modelos de IA, y la caché de traducciones.TranslateAdvancedData/ dentro del directorio de configuración de la copia portable, o al menos elimina el archivo apis.enc para evitar que tus claves API puedan ser expuestas.Ruta típica en la copia portable:
[carpeta_portable]\userConfig\TranslateAdvancedData\
Si actualizas desde una versión anterior del complemento, el sistema migrará automáticamente:
- Las claves API del formato viejo (apis.json) al nuevo formato encriptado (apis.enc).
- La caché de traducciones existente sin pérdida de datos.
- La configuración guardada en config.conf de NVDA.
bash
scons
Esto genera el archivo .nvda-addon en el directorio raíz del proyecto.
bash
scons pot
Ejecutar el script publicar.bat que ofrece un menú interactivo con las opciones:
TranslateAdvanced/
├── .github/
│ └── workflows/
│ ├── build_addon.yml ← Build + Release automática
│ └── submit_to_store.yml ← Generación de JSON para tienda NVDA
├── addon/
│ ├── doc/es/readme.md ← Documentación en español
│ └── globalPlugins/TranslateAdvanced/
│ ├── __init__.py ← GlobalPlugin principal (20 scripts)
│ ├── nucleo/ ← Módulos del núcleo
│ │ ├── gestor_ajustes.py ← Configuración centralizada
│ │ ├── gestor_cache.py ← Caché de traducciones
│ │ ├── gestor_apis.py ← Claves API encriptadas
│ │ ├── gestor_idiomas.py ← Catálogo de idiomas por servicio
│ │ ├── gestor_historial.py ← Historial de traducciones
│ │ └── gestor_actualizaciones.py ← Actualización de idiomas
│ ├── traductores/ ← 13 módulos de traducción
│ │ ├── base.py ← Clase abstracta base
│ │ ├── google_web.py ← Google Translate WEB 1
│ │ ├── google_web_alt.py ← Google Translate WEB 2
│ │ ├── google_api_free.py ← Google API Free 1
│ │ ├── google_api_free_alt.py ← Google API Free 2
│ │ ├── deepl_free.py ← DeepL Free (JSON-RPC)
│ │ ├── deepl_api.py ← DeepL API (Free + Pro)
│ │ ├── libretranslate.py ← LibreTranslate API
│ │ ├── microsoft_free.py ← Microsoft Bing Free
│ │ ├── openai_api.py ← OpenAI GPT
│ │ ├── claude_api.py ← Claude (Anthropic)
│ │ ├── gemini_api.py ← Google Gemini
│ │ └── deepseek_api.py ← DeepSeek
│ ├── servicios/ ← Servicios auxiliares
│ │ ├── detector_idiomas.py ← Detección de idioma
│ │ ├── tts_google.py ← Text-to-Speech via Google
│ │ └── intercepcion_voz.py ← Intercepción de speech de NVDA
│ ├── formatos/ ← Procesadores de archivos
│ │ ├── base.py ← Clase abstracta
│ │ ├── formato_txt.py ← Texto plano
│ │ ├── formato_html.py ← HTML
│ │ ├── formato_csv.py ← CSV
│ │ ├── formato_srt.py ← Subtítulos SRT
│ │ ├── formato_md.py ← Markdown
│ │ ├── formato_po.py ← Gettext PO/POT
│ │ └── formato_docx.py ← Microsoft Word DOCX
│ ├── guis/ ← Interfaces de usuario
│ │ ├── dialogo_ajustes.py ← Configuración por pestañas
│ │ ├── dialogo_traduccion.py ← Interfaz principal de traducción
│ │ ├── dialogo_historial.py ← Historial de traducciones
│ │ ├── dialogo_progreso.py ← Diálogo de progreso
│ │ └── reproductor_audio.py ← Reproductor de audio TTS
│ ├── utilidades/ ← Funciones auxiliares
│ │ ├── red.py ← HTTP/SSL con reintentos
│ │ ├── seguridad.py ← Encriptación y modo seguro
│ │ ├── texto.py ← Procesamiento de texto
│ │ ├── nvda_utils.py ← Utilidades de NVDA
│ │ └── ayuda_contextual.py ← Sistema Ctrl+H
│ └── datos/ ← Recursos
│ ├── sonidos/ ← open.wav, close.wav
│ └── lib/ ← wx.media (32 y 64 bits)
├── translates/ ← Paquetes de idioma
│ ├── languages.json ← Registro de versiones
│ └── README.md ← Instrucciones de gestión
├── buildVars.py ← Variables de compilación
├── sconstruct ← Script de compilación SCons
├── publicar.bat ← Script de publicación Windows
├── changelog.md ← Registro de cambios
└── readme.md ← Este archivo
Héctor J. Benítez Corredera (xebolax@gmail.com)
Este complemento está cubierto por la Licencia Pública General de GNU v2.
A toda la comunidad de NVDA en español e internacional por su apoyo constante, pruebas y sugerencias que han hecho posible este complemento.