paragraphs_source_edit
Summary: Lets you edit the source (default language) of Paragraphs at the same translations/edit path as other languages—ending 404s for source and easing fixes for library/orphan paragraphs.
Full details are in the project README.md.
Features
- Source-language editing: Enables
/paragraphs/{paragraph}/translations/edit/{language}for the source language (e.g.,en), not just translations. - Drop-in route alter: No configuration screens; immediately extends the existing translations edit route.
- Access preserved: Honors normal
updateaccess on the Paragraph and caches per permissions. - Orphan recovery: Allows editing source paragraphs even when temporarily not attached to a parent.
- Library-friendly: Complements Paragraphs Library workflows by providing a direct source edit link.
When to use it: If you use Paragraphs with Content Translation and the “asymmetric translation widgets” approach, this module gives authors an immediate, predictable source-language edit path and removes 404s for source paragraphs.
Post-Installation
- Enable the module (Composer or UI) and clear caches.
- Verify the route is active:
drush core:route | grep -E \"/paragraphs/.*/translations/edit\". - Use the paths:
- Source edit:
/<lang-prefix>/paragraphs/{pid}/translations/edit/<source-lang>(e.g.,/en/paragraphs/123/translations/edit/en) - Translation edit: unchanged (e.g.,
/fr/paragraphs/123/translations/edit/fr)
- Source edit:
- No configuration forms are required. The module only alters the existing translations edit route.
Additional Requirements
- Drupal 10 or 11
- Paragraphs module
- Content Translation module
- paragraphs_asymmetric_translation_widgets module (route provider we extend)
Recommended modules/libraries
- Paragraphs Library (optional) – manage reusable paragraph collections; this module complements it.
- Admin Toolbar – quicker navigation when testing edit routes.
Similar projects
paragraphs_asymmetric_translation_widgets alone exposes translation edit links only for non-source languages; source edits are expected via the parent entity. This module adds a source-language edit path at the same URL pattern, preserving access and cacheability. Upstream core/Paragraphs patches can sometimes approximate this but are riskier to maintain; this module is a focused, configuration-free solution.
Supporting this Module
If you find this useful, consider opening issues, sharing feedback, or contributing tests/patches.
Community Documentation
- Read the full README.