ai-powered-markdown-translatorArtikel översatt från fr till sv med gpt-5.4-mini.
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-toolkitfö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å allaia-actualites-artiklar på bloggen.
| Leverantör | Kvalitet (standard) | Sparläge (--eco) |
|---|---|---|
| OpenAI | gpt-5.5 | gpt-5.4-mini |
| Claude | claude-sonnet-4-6 | claude-haiku-4-5-20251001 |
| Mistral | mistral-large-latest | mistral-small-latest |
| Gemini | gemini-3.1-pro-preview | gemini-3.1-flash-lite-preview |
Utvecklingen v1.0 → v1.9
| Version | Datum | Huvudsaklig förbättring |
|---|---|---|
| 1.0–1.4 | 2024 | OpenAI, sedan Mistral, sedan Claude |
| 1.5 | sep. 2024 | Omstrukturering av klienter, 2024-modeller (gpt-4o, claude-3.5-sonnet) |
| 1.6 | jan. 2026 | 2026-modeller (gpt-5, claude-sonnet-4-5, gemini-3-pro), Gemini, sparläge --eco, enskild fil (--file) |
| 1.7 | jan. 2026 | --keep_filename, .env, bevarad inline-kod |
| 1.8 | mars 2026 | GPT-5.4-modeller som standard, --news-läge med citatplatshållare |
| 1.9 | maj 2026 | Validering 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
--newsanvä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!
- Källkod på GitHub
- Release v1.9
- PR #2 — 75 commits, migrering + kvalitet
- README på 14 språk
- CHANGELOG
Kontakt : contact@jls42.org