Translate new WordPress posts into localized drafts
Every weekday morning, turn each newly published post into review-ready German, French, and Spanish drafts, tagged by language and ready for an editor.
Every weekday at 8am, check my WordPress site for blog posts that were published since the last time this workflow ran. Use WordPress List Posts filtered to status 'publish' and ordered by date with the newest first, and only take posts whose publish date is after the previous run so the same post never gets translated twice.
For each new post, translate both the title and the full body into my target-market languages: German, French, and Spanish. Use DeepL Translate Text for every translation. Because the WordPress body is HTML, set tag_handling to html so all formatting (headings, links, lists, bold, and images) survives the translation intact. DeepL target language codes accept regional variants, so use codes like DE, FR, ES (or PT-BR if I add Brazilian Portuguese later).
Skip the post's own source language. Let DeepL detect the source language of the post, and if the post is already written in one of the target languages, do not translate it back into itself. Only produce drafts for the remaining target languages.
For every remaining language, create a localized draft back in WordPress using Create a Post with status set to draft. Carry over the translated title and the translated HTML body exactly. Tag each draft with the locale (for example a 'de', 'fr', or 'es' tag) so an editor can filter and find it, and note in the draft which language it targets, for example by prefixing the title with a [DE], [FR], or [ES] marker. Leave everything as a draft so an editor can review and publish when it is ready.
At the end of each run, keep track of the latest publish date processed so the next run only picks up newer posts, and note how many source posts were found and how many localized drafts were created per language.
What does this prompt do?
- Checks your WordPress site each weekday morning for posts published since the last run.
- Translates the title and full article into your target-market languages, with German, French, and Spanish set up out of the box.
- Keeps all formatting intact, including headings, links, lists, and images.
- Saves each translation back to WordPress as a draft, tagged and labeled by language, so an editor can review before anything goes live.
What do I need to use this?
- A WordPress site where you can create posts, with a login that can save drafts.
- A DeepL account for the translations.
- The list of languages you want to publish in.
How can I customize it?
- Change the schedule, for example run once a week instead of every weekday.
- Swap or add target languages, including regional variants like Brazilian Portuguese.
- Adjust how each draft is labeled, tagged, or which categories it lands in.
FAQs
Will my formatting survive the translation?
Does it publish the translations automatically?
What languages can it translate into?
Will it translate a post into the language it is already written in?
Does it re-translate the same post every day?
Related templates
See every published recipe, whether it has a live Instacart shopping link, and how many days before that link dies, then renew a whole batch in one pass.
Replace the monthly decay spreadsheet with a live board of pages losing search traffic, moving each one from spotted to refreshed and monitored.
One screen showing every published post, the languages it exists in, and which translations fell behind after the English was edited.
Work foreign-language Intercom conversations in English, and see your reply translated back into English before it goes anywhere near the customer.
Your content team opens one board each week, sees exactly which entries are missing German or French, and fills the gaps without leaving the page.
Keep every approved product, feature, and industry term in one spreadsheet, then push it live to DeepL so every translation across the company uses it.
Reach every market in its own language.
Turn each new blog post into review-ready translations without copy-pasting into a translator.