Part of the Paragraphs ecosystem · 87 projects
On a site using Paragraphs, Content Translation and
Content Moderation together, the list of Paragraphs on a page is copied to each
translation only once — when that translation is first created — and never updated again.
So when an editor adds a Paragraph to an English draft, German and French translators
cannot see it, and cannot add it themselves either, because the Paragraphs widget
offers no "add" button while translating. The new Paragraph only becomes translatable once the
English revision containing it has been published, which blocks translation work until the source
language goes live.
This module fixes that, and keeps each language independent while doing so.
Features
- Translators see new Paragraphs straight away. A Paragraph added to an
unpublished source draft appears on every translation screen immediately. - Each language gets its own draft. When the source language changes its
Paragraphs, every other language is given its own draft containing that change, so nobody edits
the revision the public is reading. - Translated text is never overwritten. Only Paragraphs a language does not yet
have are added. Deletions and reordering in the source language are followed through. - One save changes one language. Editing or publishing German cannot alter
English or French — not their text, not their Paragraphs, not their moderation state. - Publishing is per language. Publishing English leaves German and French
exactly as they were. - Paragraphs stay attached to the right revision. Older revisions still resolve
to the Paragraph revisions they were saved with, and each translated Paragraph records the
language it was translated from. - Per-language scheduling (optional, via Scheduler): each translation carries
its own publish date, and publishes its own revision.
Post-Installation
Two settings must be correct, or per-language drafts cannot work. The module checks both and
reports problems at /admin/reports/status:
- The Paragraph reference field must be translatable
(/admin/config/regional/content-language). Without this every language shares one list
of Paragraphs. - Paragraph types must be translation enabled, with their text fields
translatable, so a Paragraph translation can record the language it came from.
Then visit Configuration › Regional and language › Paragraphs translation workflow
and tick the content types to manage. The defaults are correct for a standard setup.
Two behaviours worth knowing: translators cannot add, remove or reorder Paragraphs — the
structure belongs to the source language, matching how the Paragraphs widget already behaves. And
publishing a translation publishes the Paragraphs it contains in that language, while they stay
hidden in the source language until it is published.
Additional Requirements
Drupal core: Node, Language, Content Translation, Content Moderation and Workflows.
Contributed: Paragraphs and
Entity Reference
Revisions.
Recommended modules/libraries
For per-language scheduled publishing and unpublishing, install
Scheduler and
Scheduler Content
Moderation Integration. Install both or neither: Scheduler on its own cannot move a moderated
entity between workflow states, so the integration stays switched off until both are present.
Ask your assistant about Paragraphs Translation Workflow
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
More in the Paragraphs ecosystem
Most installed first
Activity
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 1.0.0-beta1 | Pre-release | 10–11 | Oct 14, 2026 |