Buscar

Automatización Multilingüe: Mi script AI-Powered Markdown Translator

Automatización Multilingüe: Mi script AI-Powered Markdown Translator

ai-powered-markdown-translator

Artículo traducido del fr al es con gpt-5.4-mini.

Ver proyecto en GitHub ↗

Me complace presentarles mi proyecto AI-Powered Markdown Translator, un script Python de código abierto que traduce automáticamente los archivos Markdown de mi blog y algunos README/documentaciones de mis repositorios GitHub. Al integrar modelos de inteligencia artificial de vanguardia como OpenAI, Mistral AI, Anthropic (Claude) y Google Gemini, esta herramienta traduce artículos, README y documentaciones técnicas a 14 idiomas, conservando su estructura y su formato. Este proyecto pone de relieve mis competencias en automatización, integración de IA e ingeniería de fiabilidad, así como mi pasión por hacer que el contenido técnico sea accesible para todos.

No es solo un script: es una prueba de mi experiencia y de mi visión de un mundo digital más inclusivo.

¿Por qué este proyecto?

Los archivos Markdown son esenciales para mi ecosistema digital: contienen mis artículos de blog, tutoriales y documentaciones open-source. Al automatizar su traducción, hago que mi contenido sea accesible para una audiencia mundial. Mi blog está ahora disponible en 14 idiomas gracias a este script — casi 1 800 versiones traducidas (a grandes rasgos, sin contar las fuentes FR) están hoy en línea en jls42.org, y el contador sigue subiendo con cada publicación.

La v1.9 (mayo de 2026) marca un hito: código desarrollado al feeling (vibe coding) en pair-IA (Claude Code + Codex), asegurado por una pila de calidad industrial (14 hooks, 229 tests, SonarCloud, revisión de PR asistida por IA) para apuntar a un código limpio incluso cuando cada línea no se relee a mano.

Estos son ejemplos concretos del script en acción:

  • Este blog jls42.org en 14 idiomas — toda la experiencia editorial multilingüe (artículos, proyectos, noticias de IA) es producida por este script. Por ejemplo, puedes recorrer la versión alemana, japonesa, china, española o árabe del sitio — cada contenido editorial traducido ha pasado por él (los elementos de interfaz, por su parte, provienen del sistema i18n nativo de Astro).
  • El README del propio proyecto está traducido a 14 idiomas en GitHub. Ejemplos: inglés, español, chino.

Este proyecto muestra cómo la IA puede resolver problemas prácticos al tiempo que favorece la accesibilidad.

Mis competencias destacadas

Este proyecto es un escaparate de mi saber hacer técnico. Esto es lo que pone de relieve:

  • Orquestación multimodelo: Claude Code en Opus para desarrollar, Codex como solución de respaldo (fallback), GPT-5.5 reasoning extra-high para desafiar los planes, /pr-review-toolkit para la revisión antes del merge
  • Integración de múltiples APIs de IA: 4 providers conectados (OpenAI, Mistral AI, Claude, Gemini), con adaptación a las particularidades de cada API (gestión de los finish_reason / stop_reason, formatos de respuesta, límites de tokens)
  • Ingeniería de fiabilidad: validación pos-traducción de doble capa (determinista anti-fuga verbatim + probabilista langdetect), detección de fallos silenciosos (silent failures), devoluciones por estado explícito
  • Pila de calidad industrial: 14 hooks automatizados (ruff, mypy, shellcheck, Opengrep SAST, pip-audit, Lizard…), 229 tests unittest, 11 badges SonarCloud, además de Codacy y CodeFactor
  • Espíritu open-source: disponible en GitHub, GPLv3, README traducido a 14 idiomas

Estos aspectos dan testimonio de mi capacidad para crear herramientas potentes, fiables y mantenibles a largo plazo.

Funcionalidades principales

Esto es lo que ofrece el script:

  • Multi-Provider: soporte de 4 APIs (OpenAI, Mistral AI, Claude, Gemini)
  • Modelos 2026: GPT-5.5, Claude Sonnet 4.6, Gemini 3.1 Pro por defecto
  • Modo económico (--eco): modelos más rápidos y menos costosos
  • Archivo único (--file): traducir un solo archivo en lugar de un directorio entero
  • Conservación del nombre (--keep_filename): conserva el nombre y la extensión originales (ideal para Astro, Hugo, etc.)
  • Soporte .env: carga automática de las claves API desde un archivo .env
  • Soporte de archivos .mdx: además de los archivos .md clásicos
  • Conservación del formato: los bloques de código, el código inline, los enlaces y los metadatos permanecen intactos

Novedades v1.9 (mayo de 2026):

  • Validación pos-traducción: detección automática de fallos silenciosos (silent failures) — idioma objetivo verificado, truncamientos interceptados en todos los providers.
  • Nota en varias posiciones (--note_position, --note_format): arriba, abajo o ambas; formato heredado (legacy) o formato marcador (marker format) compatible con la tarjeta incrustada (embed card) de GitHub.
  • Modo --news reforzado: ya introducido en v1.8 para proteger las citas fuentes EN mediante placeholders, el modo se beneficia en v1.9 de una validación pos-restauración endurecida (placeholder residual = error, cita original y URL de atribución verificadas, banderas target/source controladas) — utilizado en todos los artículos ia-actualites del blog.
ProviderCalidad (por defecto)Económico (--eco)
OpenAIgpt-5.5gpt-5.4-mini
Claudeclaude-sonnet-4-6claude-haiku-4-5-20251001
Mistralmistral-large-latestmistral-small-latest
Geminigemini-3.1-pro-previewgemini-3.1-flash-lite-preview

Evolución v1.0 → v1.9

VersiónFechaAporte principal
1.0–1.42024OpenAI, luego Mistral, luego Claude
1.5sept. 2024Refactor de clientes, modelos 2024 (gpt-4o, claude-3.5-sonnet)
1.6janv. 2026Modelos 2026 (gpt-5, claude-sonnet-4-5, gemini-3-pro), Gemini, modo --eco, archivo único (--file)
1.7janv. 2026--keep_filename, .env, código inline preservado
1.8mars 2026Modelos GPT-5.4 por defecto, modo --news con placeholders de citas
1.9mai 2026Validación pos-traducción, nota multi-posición, pila de calidad 14 hooks + 229 tests + revisión IA

Desarrollo al feeling + salvaguardas

Toda la v1.9 fue escrita en pair-IA. Mi flujo: Claude Code (Opus, exclusivamente) escribe el código, Codex toma el relevo cuando Opus se bloquea o cuando la ventana de uso está saturada, GPT-5.5 (reasoning extra-high) desafía los planes antes de la ejecución, y el skill /pr-review-toolkit:review-pr relee la PR antes de cada merge. Yo no releo el código yo mismo. Para que este modo de desarrollo sea viable en producción, he invertido en una pila de salvaguardas proporcional:

  • 14 hooks automatizados (pre-commit + pre-push): shellcheck, ruff, prettier, detect-secrets, Lizard CCN, mypy, Opengrep SAST, pip-audit, unittest
  • 229 tests unittest (~98 % de cobertura sobre el nuevo código v1.9)
  • Tests prácticos: multi-repo sobre README variados, uso interno del producto (dogfooding) en el blog (producción = test en vivo), verificación del renderizado visual (navegador o vista previa Markdown)
  • 3 plataformas externas: SonarCloud (11 badges), Codacy, CodeFactor
  • Skill /pr-review-toolkit:review-pr: revisión asistida por IA multiagente antes del merge
  • Validación pos-traducción de doble capa: determinista (anti-fuga verbatim) + probabilística (langdetect)

La idea no es demostrar que sabemos hacer ingeniería clásica. Es que no tenemos opción: el código de IA no revisado merece más salvaguardas, no menos. Esta disciplina se detalla en el deep-dive técnico.

En producción en este blog

El proyecto se traduce a sí mismo: su README está en 14 idiomas, y genera todas las versiones multilingües de este blog.

  • Artículos del blog, 4 proyectos y 98 artículos ia-actualites representan casi 1 800 versiones traducidas sin contar las fuentes FR (cobertura por idioma variable según los contenidos)
  • Modo --news utilizado sistemáticamente en los artículos ia-actualites para preservar las citas fuentes EN
  • Salvaguarda v1.9 activa desde mayo de 2026: desde la introducción de la doble validación pos-traducción, ya no he detectado ningún silent-failure de idioma objetivo
  • Meta-coherencia: la página que lees en inglés, alemán, japonés… está traducida por este script

Para ir más allá

Para entender cómo se produjo esta v1.9 (las novedades en detalle, el flujo de trabajo multimodelo, las salvaguardas implementadas para apuntar a un código limpio sin releer), consulta el deep-dive técnico completo.

Y para comparar el tono con una versión anterior, el artículo de 2024 sobre la v1.5 sigue un formato de release notes más clásico.

Pruébalo tú mismo

Descubre el proyecto en GitHub, pruébalo con tus archivos Markdown y comparte tus comentarios. ¡Tus ideas me ayudan a perfeccionarlo!

Contacto: contact@jls42.org