Căutare

Automatizare multilingvă: Scriptul meu AI-Powered Markdown Translator

ai-powered-markdown-translator

Articol tradus din fr în ro cu gpt-5.4-mini.

Vezi proiectul pe GitHub ↗

Sunt încântat să vă prezint proiectul meu AI-Powered Markdown Translator, un script Python open-source care traduce automat fișierele Markdown de pe blogul meu și anumite README/documentații din depozitele mele GitHub. Integrând modele de inteligență artificială de ultimă generație precum OpenAI, Mistral AI, Anthropic (Claude) și Google Gemini, acest instrument traduce articole, README-uri și documentații tehnice în 14 limbi, păstrându-le în același timp structura și formatarea. Acest proiect scoate în evidență competențele mele în automatizare, integrare IA și ingineria fiabilității, precum și pasiunea mea de a face conținutul tehnic accesibil tuturor.

Nu este doar un script: este o dovadă a expertizei mele și a viziunii mele pentru o lume digitală mai incluzivă.

De ce acest proiect ?

Fișierele Markdown sunt esențiale pentru ecosistemul meu digital: ele conțin articolele mele de blog, tutorialele și documentațiile open-source. Automatizând traducerea lor, îmi fac conținutul accesibil unui public global. Blogul meu este acum disponibil în 14 limbi datorită acestui script — aproape 1 800 de versiuni traduse (ca ordin de mărime, fără sursele FR) sunt astăzi online pe jls42.org, iar contorul crește la fiecare publicare.

v1.9 (mai 2026) marchează un prag: cod dezvoltat după feeling (vibe coding) în pair-IA (Claude Code + Codex), securizat de un stack de calitate industrială (14 hooks, 229 de teste, SonarCloud, revizuire PR asistată de IA) pentru a urmări un cod curat chiar și atunci când fiecare linie nu este recitită manual.

Iată exemple concrete ale scriptului în acțiune:

  • Acest blog jls42.org în 14 limbi — întreaga experiență editorială multilingvă (articole, proiecte, actualități IA) este produsă de acest script. De exemplu, puteți parcurge versiunea germană, japoneză, chineză, spaniolă sau arabă a site-ului — fiecare conținut editorial tradus a trecut prin el (elementele de interfață, însă, vin din sistemul i18n nativ al Astro).
  • README-ul proiectului însuși este tradus în 14 limbi pe GitHub. Exemple: engleză, spaniolă, chineză.

Acest proiect arată cum IA poate rezolva probleme practice, favorizând în același timp accesibilitatea.

Competențele mele în prim-plan

Acest proiect este o vitrină a expertizei mele tehnice. Iată ce evidențiază:

  • Orchestrare multi-model: Claude Code în Opus pentru dezvoltare, Codex ca soluție de rezervă (fallback), GPT-5.5 reasoning extra-high pentru a provoca planurile, /pr-review-toolkit pentru revizuire înainte de merge
  • Integrarea mai multor API-uri IA: 4 provideri conectați (OpenAI, Mistral AI, Claude, Gemini), cu adaptare la specificitățile fiecărei API-uri (gestionarea finish_reason / stop_reason, formatele de răspuns, limitele de tokens)
  • Ingineria fiabilității: validare post-traducere în două straturi (determinist anti-fugă verbatim + probabilist langdetect), detectarea eșecurilor tăcute (silent failures), returnări prin status explicit
  • Stack de calitate industrială: 14 hooks automatizate (ruff, mypy, shellcheck, Opengrep SAST, pip-audit, Lizard…), 229 de teste unittest, 11 badge-uri SonarCloud, plus Codacy și CodeFactor
  • Spirit open-source: disponibil pe GitHub, GPLv3, README tradus în 14 limbi

Aceste aspecte atestă capacitatea mea de a crea instrumente puternice, fiabile și ușor de întreținut pe termen lung.

Funcționalități principale

Iată ce oferă scriptul:

  • Multi-Provider: suport pentru 4 API-uri (OpenAI, Mistral AI, Claude, Gemini)
  • Modele 2026: GPT-5.5, Claude Sonnet 4.6, Gemini 3.1 Pro implicit
  • Mod economic (--eco): modele mai rapide și mai puțin costisitoare
  • Fișier unic (--file): traduce un singur fișier în locul unui întreg director
  • Păstrarea numelui (--keep_filename): păstrează numele și extensia originale (ideal pentru Astro, Hugo etc.)
  • Suport .env: încărcarea automată a cheilor API dintr-un fișier .env
  • Suport pentru fișiere .mdx: în plus față de fișierele .md clasice
  • Păstrarea formatării: blocurile de cod, codul inline, linkurile și metadatele rămân intacte

Noutăți v1.9 (mai 2026) :

  • Validare post-traducere: detectarea automată a eșecurilor tăcute (silent failures) — limba țintă verificată, trunchierile interceptate pentru toți providerii.
  • Notă multi-poziție (--note_position, --note_format): sus, jos sau ambele; format moștenit (legacy) sau format marker (marker format) compatibil cu cartea încorporată (embed card) GitHub.
  • Mod --news întărit: deja introdus în v1.8 pentru a proteja citatele sursă EN prin placeholders, modul beneficiază în v1.9 de o validare post-restaurare întărită (placeholder rezidual = eroare, citatul original și URL-ul de atribuire verificate, steagurile țintă/sursă controlate) — folosit pe toate articolele ia-actualites ale blogului.
ProviderCalitate (implicit)Economic (--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

Evoluție v1.0 → v1.9

VersiuneDatăAport principal
1.0–1.42024OpenAI, apoi Mistral, apoi Claude
1.5sept. 2024Refactorizare clienți, modele 2024 (gpt-4o, claude-3.5-sonnet)
1.6ian. 2026Modele 2026 (gpt-5, claude-sonnet-4-5, gemini-3-pro), Gemini, mod --eco, fișier unic (--file)
1.7ian. 2026--keep_filename, .env, cod inline păstrat
1.8mart. 2026Modele GPT-5.4 implicite, mod --news cu placeholders pentru citate
1.9mai 2026Validare post-traducere, notă multi-poziție, stack de calitate 14 hooks + 229 teste + revizuire IA

Dezvoltare după feeling + măsuri de siguranță

Toată v1.9 a fost scrisă în pair-IA. Fluxul meu: Claude Code (Opus, exclusiv) scrie codul, Codex preia când Opus se blochează sau când fereastra de utilizare este saturată, GPT-5.5 (reasoning extra-high) provoacă planurile înainte de execuție, iar skill-ul /pr-review-toolkit:review-pr citește PR-ul înainte de fiecare merge. Eu nu citesc codul personal. Pentru ca acest mod de dezvoltare să fie viabil în producție, am investit într-un stack de măsuri de siguranță proporțional:

  • 14 hooks automatizate (pre-commit + pre-push): shellcheck, ruff, prettier, detect-secrets, Lizard CCN, mypy, Opengrep SAST, pip-audit, unittest
  • 229 de teste unittest (~98 % acoperire pe noul cod v1.9)
  • Teste practice: multi-repo pe README-uri variate, utilizare internă a produsului (dogfooding) pe blog (producție = test live), verificarea randării vizuale (browser sau previzualizare Markdown)
  • 3 platforme externe: SonarCloud (11 badge-uri), Codacy, CodeFactor
  • Skill-ul /pr-review-toolkit:review-pr: revizuire asistată de IA multi-agent înainte de merge
  • Validare post-traducere în două straturi: deterministă (anti-fugă verbatim) + probabilistă (langdetect)

Ideea nu este să demonstrăm că știm să facem inginerie clasică. Este că nu avem de ales: codul IA nerecitit merită mai multe măsuri de siguranță, nu mai puține. Această disciplină este detaliată în deep-dive-ul tehnic.

În producție pe acest blog

Proiectul se traduce singur: README-ul său este în 14 limbi, iar el generează toate versiunile multilingve ale acestui blog.

  • Articole blog, 4 proiecte și 98 de articole ia-actualites reprezintă aproape 1 800 de versiuni traduse fără sursele FR (acoperire pe limbă variabilă în funcție de conținut)
  • Mod --news folosit sistematic pe articolele ia-actualites pentru a păstra citatele sursă EN
  • Măsura de siguranță v1.9 activă din mai 2026: de la introducerea validării duble post-traducere, nu am mai detectat niciun silent-failure de limbă țintă
  • Meta-coerență: pagina pe care o citiți în engleză, germană, japoneză… este tradusă de acest script

Pentru a merge mai departe

Pentru a înțelege cum a fost produsă această v1.9 (noutățile în detaliu, fluxul de lucru multi-model, măsurile de siguranță implementate pentru a urmări un cod curat fără recitire), consultați deep-dive-ul tehnic complet.

Iar pentru a compara tonul cu o versiune anterioară, articolul din 2024 despre v1.5 urmează un format mai clasic de release notes.

Încercați-l chiar dumneavoastră

Descoperiți proiectul pe GitHub, testați-l cu fișierele dumneavoastră Markdown și împărtășiți feedbackul. Ideile voastre mă ajută să-l perfecționez!

Contact : contact@jls42.org