Sök

Flerspråkig automatisering: mitt AI-Powered Markdown Translator-script

ai-powered-markdown-translator

Artikel översatt från fr till sv med gpt-5.4-mini.

Visa projekt på GitHub ↗

Jag är glad att få presentera mitt projekt AI-Powered Markdown Translator, ett öppen källkodsskript i Python som automatiskt översätter Markdown-filer från min blogg och vissa README-/dokumentationsfiler i mina GitHub-repositorier. Genom att integrera avancerade AI-modeller som OpenAI, Mistral AI, Anthropic (Claude) och Google Gemini översätter verktyget artiklar, README-filer och teknisk dokumentation till 14 språk, samtidigt som struktur och formatering bevaras. Projektet lyfter fram min kompetens inom automatisering, AI-integration och tillförlitlighetsingenjörskap, samt min passion för att göra tekniskt innehåll tillgängligt för alla.

Det här är inte bara ett skript: det är ett bevis på min expertis och min vision för en mer inkluderande digital värld.

Varför det här projektet?

Markdown-filer är centrala i mitt digitala ekosystem: de innehåller mina bloggartiklar, handledningar och öppen källkods-dokumentation. Genom att automatisera översättningen gör jag mitt innehåll tillgängligt för en global publik. Min blogg finns nu tillgänglig på 14 språk tack vare det här skriptet — nästan 1 800 översatta versioner (i grova drag, exklusive franska källor) finns i dag online på jls42.org, och räknaren fortsätter att stiga för varje publicering.

v1.9 (maj 2026) markerar en milstolpe: kod utvecklad på känsla (vibe coding) i par med AI (Claude Code + Codex), säkrad med en kvalitetstack i industriell klass (14 hooks, 229 tester, SonarCloud, AI-assisterad PR-granskning) för att sikta på ren kod även när varje rad inte läses igenom för hand.

Här är konkreta exempel på skriptet i praktiken:

  • Den här bloggen jls42.org på 14 språk — hela den flerspråkiga redaktionella upplevelsen (artiklar, projekt, AI-nyheter) produceras av det här skriptet. Du kan till exempel bläddra i den tyska, japanska, kinesiska, spanska eller arabiska versionen av webbplatsen — allt översatt redaktionellt innehåll har gått genom det (gränssnittselementen kommer däremot från Astros inbyggda i18n-system).
  • Projektets egen README översätts till 14 språk på GitHub. Exempel: engelska, spanska, kinesiska.

Det här projektet visar hur AI kan lösa praktiska problem samtidigt som det främjar tillgänglighet.

Mina kompetenser i rampljuset

Det här projektet är ett skyltfönster för min tekniska kompetens. Här är vad det lyfter fram:

  • Orkestrering med flera modeller: Claude Code i Opus för att utveckla, Codex som reserv (fallback), GPT-5.5 reasoning extra-high för att utmana planerna, /pr-review-toolkit för granskning före merge
  • Integration av flera AI-API:er: 4 anslutna providers (OpenAI, Mistral AI, Claude, Gemini), med anpassning till varje API:s specifika egenskaper (hantering av finish_reason / stop_reason, svarsformat, tokengränser)
  • Tillförlitlighetsingenjörskap: dubbel lagers post-översättningsvalidering (deterministisk mot verbatim-läckage + probabilistisk langdetect), upptäckt av tysta fel (silent failures), återkoppling via explicita statusar
  • Industriell kvalitetstack: 14 automatiserade hooks (ruff, mypy, shellcheck, Opengrep SAST, pip-audit, Lizard…), 229 unittest-tester, 11 SonarCloud-badges, plus Codacy och CodeFactor
  • Open source-anda: tillgängligt på GitHub, GPLv3, README översatt till 14 språk

Dessa aspekter visar min förmåga att skapa kraftfulla, pålitliga och långsiktigt underhållbara verktyg.

Huvudfunktioner

Här är vad skriptet erbjuder:

  • Multi-Provider: stöd för 4 API:er (OpenAI, Mistral AI, Claude, Gemini)
  • Modeller 2026: GPT-5.5, Claude Sonnet 4.6, Gemini 3.1 Pro som standard
  • Sparläge (--eco): snabbare och billigare modeller
  • Enskild fil (--file): översätt en enda fil i stället för en hel katalog
  • Bibehållet namn (--keep_filename): behåller det ursprungliga namnet och filändelsen (idealiskt för Astro, Hugo, etc.)
  • Stöd för .env: automatisk inläsning av API-nycklar från en .env-fil
  • Stöd för .mdx-filer: utöver vanliga .md-filer
  • Formateringsbevarande: kodblock, inline-kod, länkar och metadata förblir intakta

Nyheter i v1.9 (maj 2026):

  • Validering efter översättning: automatisk upptäckt av tysta fel (silent failures) — målspråk verifieras, trunkeringar fångas upp för alla providers.
  • Flernivånotering (--note_position, --note_format): överst, nederst eller båda; arvformat (legacy) eller markörformat (marker format) som är kompatibelt med GitHubs inbäddade kort (embed card).
  • Förstärkt --news-läge: redan introducerat i v1.8 för att skydda källcitaten på EN via platshållare, får läget i v1.9 en hårdare validering efter återställning (återstående platshållare = fel, originalcitat och URL för attribuering verifieras, mål-/källflaggor kontrolleras) — används på alla ia-actualites-artiklar på bloggen.
LeverantörKvalitet (standard)Sparläge (--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

Utvecklingen v1.0 → v1.9

VersionDatumHuvudsaklig förbättring
1.0–1.42024OpenAI, sedan Mistral, sedan Claude
1.5sep. 2024Omstrukturering av klienter, 2024-modeller (gpt-4o, claude-3.5-sonnet)
1.6jan. 20262026-modeller (gpt-5, claude-sonnet-4-5, gemini-3-pro), Gemini, sparläge --eco, enskild fil (--file)
1.7jan. 2026--keep_filename, .env, bevarad inline-kod
1.8mars 2026GPT-5.4-modeller som standard, --news-läge med citatplatshållare
1.9maj 2026Validering efter översättning, flernivånotering, kvalitetstack med 14 hooks + 229 tester + AI-granskning

Utveckling på känsla + skyddsräcken

Hela v1.9 skrevs i par med AI. Mitt flöde: Claude Code (Opus, exklusivt) skriver koden, Codex tar över när Opus fastnar eller när användningsfönstret är fullt, GPT-5.5 (reasoning extra-high) utmanar planerna före körning, och skillen /pr-review-toolkit:review-pr läser igenom PR:n före varje merge. Jag läser inte själv igenom koden. För att den här utvecklingsmodellen ska vara hållbar i produktion har jag investerat i en proportionerlig skyddsräcksstack:

  • 14 hooks automatiserade (pre-commit + pre-push): shellcheck, ruff, prettier, detect-secrets, Lizard CCN, mypy, Opengrep SAST, pip-audit, unittest
  • 229 tester unittest (~98 % täckning för den nya koden i v1.9)
  • Praktiska tester: multi-repo på varierande README-filer, intern användning av produkten (dogfooding) på bloggen (produktion = live-test), kontroll av det visuella resultatet (webbläsare eller Markdown-förhandsgranskning)
  • 3 externa plattformar: SonarCloud (11 badges), Codacy, CodeFactor
  • Skill /pr-review-toolkit:review-pr: AI-assisterad granskning med flera agenter före merge
  • Dubbel lager post-översättningsvalidering: deterministisk (mot verbatim-läckage) + probabilistisk (langdetect)

Poängen är inte att bevisa att man behärskar klassisk ingenjörskonst. Det är att man inte har något val: AI-kod som inte har lästs igenom förtjänar fler skyddsräcken, inte färre. Den här disciplinen beskrivs i detalj i den tekniska djupdykningen.

I produktion på den här bloggen

Projektet översätter sig självt: dess README finns på 14 språk, och det genererar alla flerspråkiga versioner av den här bloggen.

  • Bloggartiklar, 4 projekt och 98 artiklar ia-actualites representerar nästan 1 800 översatta versioner exklusive franska källor (språktäckningen varierar beroende på innehållet)
  • Läget --news används systematiskt på ia-actualites-artiklar för att bevara källcitaten på EN
  • Skyddsräcket v1.9 har varit aktivt sedan maj 2026: sedan införandet av den dubbla post-översättningsvalideringen har jag inte längre upptäckt några tysta språkfel
  • Meta-koherens: sidan du läser på engelska, tyska, japanska… översätts av det här skriptet

För att gå vidare

För att förstå hur v1.9 skapades (nyheterna i detalj, det flermodelliga arbetsflödet, skyddsräcken som införts för att sikta på ren kod utan att läsa igenom allt själv), se den fullständiga tekniska djupdykningen.

Och för att jämföra tonen med en tidigare release följer artikeln från 2024 om v1.5 ett mer klassiskt release notes-format.

Testa det själv

Upptäck projektet på GitHub, testa det med dina Markdown-filer och dela dina synpunkter. Dina idéer hjälper mig att förfina det!

Kontakt : contact@jls42.org