Translate a README or documentation page and get valid Markdown back — code blocks, links and syntax untouched.
How to translate a Markdown file for free
- Click Choose files (or drag & drop) and select one or more Markdown files. You can also paste an image from your clipboard.
- Pick the language to translate into. If you know which language the file is in, say so rather than leaving it on automatic — detection works from the text itself, and a short document gives it little to go on.
- Press Translate. Processing runs with a live progress indicator.
- Open the download page to save your files individually or grab everything as a single ZIP.
Why translate Markdown here?
Pasting Markdown into a translator returns something that is no longer Markdown: the hashes and hyphens survive by luck, the code blocks come back translated, and the link targets come back subtly rewritten into dead links. This sends the prose and nothing else. Fenced code, indented code, front matter, link definitions, rules and table separators are never sent at all, table rows are translated cell by cell so the pipes stay put, and inline code, links and web addresses are lifted out before sending so they cannot be rewritten at all.
Advertisement
About the formats
Prose out, syntax untouched
Markdown is the worst thing to put through a general translator, because it looks like plain text and is not. The hashes and hyphens survive by luck. The code blocks come back translated, which means they no longer run. And the link targets come back subtly rewritten — a translator will happily turn /getting-started into /erste-schritte, which is a dead link on a site where that page does not exist.
So the syntax is separated from the prose before anything is sent, and only the prose goes. Fenced code blocks, indented code, YAML front matter, reference-style link definitions, horizontal rules and table divider rows are never sent at all. Heading hashes, list markers, blockquote arrows and task-list brackets are stripped off the front of a line, the sentence is translated on its own, and the marker is put back.
Tables cell by cell
A table row sent whole comes back with its pipes in new places, because the model treats the pipes as punctuation and moves them. Rows are split on the pipes and each cell is translated as its own piece, so a four-column table comes back as a four-column table.
Keeping out what should not go
Inline code and links do not survive a round trip, and the damage is not the kind you can undo afterwards: backticks come back as quotation marks, so `npm install` stops being code, and a link’s brackets drift apart or vanish outright, which in Chinese left [the guide](/a) with no closing bracket at all. So they are not sent. Each one is lifted out of the line and replaced by a short placeholder, the sentence around it is translated, and the original is put back. A link goes further: its label is sent as a block of its own and the link is rebuilt around the translated label, so the syntax cannot break however the sentence was rearranged.
The placeholder itself had to be chosen rather than guessed. Seven shapes were tried against the live translation service: one came back a character short, one was turned into a different word, one grew an extra symbol, and one made the engine give up and hand the sentence back in English. The shape that survived intact in every language tried — Chinese and Arabic included — is the one in use. And if a placeholder still fails to come back, that line keeps the wording it arrived with, because a line missing its code or its link is worse than a line that was never translated.
What it is good for
READMEs, documentation pages, changelogs, static-site content and notes. Technical prose is the case machine translation handles best: it is literal, it is full-sentence, and it has little idiom to lose. Front matter is deliberately left in English — those are keys your site generator reads, not words your readers see.
Frequently asked questions
Is this Translate Markdown tool free?
Yes — there is no sign-up, payment or watermark. Server-processed tools use the published file-size, duration and fair-use limits so jobs remain available to everyone; those are technical safeguards, not a paid tier.
Can I translate several files at once?
Yes. Drop in as many as you like and each is translated in sequence with its own progress status, then downloaded individually or all together as a ZIP. Long files are sent for translation in batches, so a stack of large documents can reach the fair-use ceiling — if it does, the message says so and waiting a few minutes is all it takes.
Is my file uploaded to a server?
Yes — this tool needs a full office engine, so your file is sent to our server over an encrypted (HTTPS) connection, converted there, and deleted immediately after the PDF is delivered. It is never read for any other purpose, never shared, and never stored. Files up to 50 MB are accepted.
What exactly is left alone?
Fenced and indented code blocks, YAML front matter, reference-style link definitions, horizontal rules and table divider rows are never sent. Heading hashes, list markers, blockquote arrows and checkbox brackets are stripped off before sending and put back after. Inline code spans, links and bare web addresses are lifted out of the line before it is sent and put back afterwards, so they are never exposed to translation at all. A link’s label is sent separately and the link rebuilt around it, which is why its brackets cannot drift. If a placeholder fails to come back, that line keeps its original wording rather than publishing a broken link.
Advertisement