Translate Markdown without breaking your formatting.
Headings stay headings. Bold stays bold. Code fences stay code fences. PolyLingo translates only the text nodes inside your Markdown — everything structural is untouched.
Every other translation tool mangles Markdown.
Paste a Markdown document into DeepL or Google Translate and you'll get back something that looks approximately right — until you look closely. Heading syntax gets translated. Code fences become prose. Bold markers get moved or dropped. Link URLs get corrupted. The translation is technically readable but your Markdown is no longer valid, and your rendered output is broken. If you've hit this wall, you know how frustrating it is to manually repair a 1,500-word article in five languages.
The issue is that these tools treat your Markdown as a single string of text. They don't parse it. They don't understand the difference between a heading marker and a word. The # that makes a heading becomes translated as "Nº" or gets moved. The ** that creates bold text gets scrambled. The [link text](url) syntax gets partially translated, sometimes corrupting the URL.
For technical writers, developers maintaining README files, or content teams publishing structured blog posts, this means every translation needs manual post-processing before it can be used. That work compounds fast across multiple languages.
PolyLingo parses Markdown before translating it.
PolyLingo understands Markdown structure. It identifies headings, bold and italic markers, links, code fences, inline code, lists, and blockquotes before translation begins. Only the plain text nodes — the actual words — are sent to the translation model. The structural elements never change. The output is valid Markdown in every language.
The process: PolyLingo parses your Markdown into a structured AST (abstract syntax tree) before the translation model sees any of it. The translation model only receives the text nodes — the actual words. Headings, bold markers, italic markers, link syntax, code fences, list prefixes, blockquote markers — none of these reach the translation model. They are reconstructed from the original structure after translation.
The output is syntactically valid Markdown in every language. It renders correctly. It can be committed directly to your docs, pushed to your CMS, or passed to another tool without any cleanup step.
# Getting Started with PolyLingo Translate your **Markdown content** into 36 languages. Structure and formatting are *always* preserved. ## How it works 1. Paste your content 2. Pick your languages 3. Download the results > Your content comes back exactly as you sent it. > Just in a different language. ```bash curl -X POST https://api.usepolylingo.com/v1/translate ```
# Primeros pasos con PolyLingo Traduce tu **contenido en Markdown** a 36 idiomas. La estructura y el formato se *preservan siempre*. ## Cómo funciona 1. Pega tu contenido 2. Elige tus idiomas 3. Descarga los resultados > Tu contenido regresa exactamente como lo enviaste. > Solo en un idioma diferente. ```bash curl -X POST https://api.usepolylingo.com/v1/translate ```
What PolyLingo preserves in every Markdown translation
- ✓Headings (H1–H6) preserved exactly
- ✓Bold, italic, and strikethrough untouched
- ✓Links — text translated, URLs never modified
- ✓Code fences and inline code never translated
- ✓Lists, blockquotes, and tables structure preserved
- ✓Auto-detected — no format flag required
- ✓Tables — column alignment and separator rows preserved
- ✓Footnotes and reference-style links supported
Three ways to translate your Markdown
Use the no-code translator
Paste your Markdown directly into the PolyLingo translator. Select your target languages. Click translate. Download a zip file containing one translated .md file per language. No API key required for the first translation.
Call the REST API
Send your Markdown content to POST /v1/translate with format set to "markdown" (or omit it — PolyLingo auto-detects Markdown). Specify your target language codes. Receive all translations in one JSON response.
Automate via your CMS or build pipeline
Wire the translation API into your content publish webhook or build script. When new English content is published, it gets translated automatically and written to your locale-specific content directories.
Where Markdown translation matters
Blog posts and articles
Translate long-form posts with headings, formatting, and embedded images without any reformatting work. Your post structure comes through intact in every language.
Technical documentation
Docs written in Markdown or MDX translate cleanly — code examples stay in English, prose translates, and your docs site structure is never disrupted.
README files and open source projects
Internationalise your GitHub README or project documentation. All code blocks, commands, and syntax stay untouched. Only the explanatory text is translated.
Frequently asked questions about Markdown translation
Does PolyLingo support MDX as well as Markdown?
MDX support is in development. Currently, PolyLingo handles standard Markdown (CommonMark) including GFM extensions such as tables, strikethrough, and task lists. JSX components inside MDX are not yet supported, but the Markdown portions of an MDX file translate correctly.
Are code blocks always left untranslated?
Yes. Code fences (triple backtick and tilde blocks) and inline code (single backtick) are never passed to the translation model. The content inside them is treated as untranslatable. This applies to all language identifiers and shell commands as well.
What happens to front matter (YAML metadata)?
YAML front matter (the --- block at the top of a Markdown file) is preserved in structure. String values within the front matter are translated. Keys are never modified. This means your title and description fields get translated while your slug, date, and other non-prose fields stay intact.
Can I translate to multiple languages in a single request?
Yes. Pass an array of target language codes in the targets field and PolyLingo returns translations for all of them in a single response object, keyed by language code. You can target all 36 supported languages at once.
How accurate is the translation quality for technical Markdown content?
The Standard model produces accurate, natural-sounding translations for most technical and informational content. For marketing copy or content with strong brand voice, the Advanced model (available on Starter plan and above) applies higher nuance and idiomatic accuracy.
Does PolyLingo handle Markdown in both directions — RTL as well as LTR?
Yes. When translating to RTL languages (Arabic, Hebrew, Persian, Urdu), PolyLingo adds the correct dir="rtl" attribute to block-level HTML elements in the output where appropriate, and flags the RTL status in the API response so your renderer can handle display correctly.
Try it with your own Markdown.
Free tier. No credit card. Paste your content and see the output in under a second.
Free tier — 100,000 tokens per month. No credit card required.