This project is not covered by Drupal’s security advisory policy.

Automatically populates the Layout Builder layout of a newly created translation from a source language. Editors get a starting layout to customize instead of building each translation from scratch.

When you create a new translation of a Layout Builder–enabled entity (such as a node), this module copies the source language's sections, components, and inline blocks into the new translation. After the initial seed, each translation lives independently — you continue editing per-translation layouts with Layout Builder Asymmetric Translations. The module fills the gap between "create translation" and "have a layout ready to edit," eliminating the manual rebuild step.

Features

  • Automatic seeding on translation create via hook_entity_presave. No editor opt-in checkbox required — if a matching rule exists, the layout is copied during the translation's first save.
  • Configurable rules per source → target language pair. Filter by entity type and bundle. Multiple rules can coexist (for example en → en-us, en → en-gb, fr → fr-ca on the same site).
  • Component UUID regeneration — every cloned component receives a freshly generated UUID so it remains independent of the source.
  • Inline-block deep-cloningblock_content entities referenced by inline_block:* components are duplicated and the cloned component is rewired to the duplicate, so editing inline content in the translation does not bleed back into the source.
  • Manual reseed action — a "Reseed layout from <source>" button appears on the destination translation's edit form (permission-gated), letting editors re-baseline a translation from the latest source layout when needed.
  • Configurable per-rule — toggle UUID regeneration and inline-block cloning, enable/disable rules without deleting them.

Use cases

  • Regional variants of a primary language (en → en-us, en → en-gb, en → en-au).
  • Multilingual sites where translated layouts should start from the source language but evolve independently.
  • Refreshing a stale translation layout after major changes to the source.

Post-Installation

  1. Install and enable layout_builder_at (hard dependency — provides the asymmetric storage this module seeds into).
  2. Enable Layout Builder with overrides on each bundle's default display where you want translatable layouts.
  3. With layout_builder_at enabled, the Layout field becomes configurable in the standard content-language settings UI. Go to Configuration → Regional & language → Content language and translation (/admin/config/regional/content-language), expand the relevant bundle, tick the Layout checkbox under "Fields to translate," and save.
  4. Visit Configuration → Regional & language → Layout Builder Translation Seed (/admin/config/regional/lb-translation-seed).
  5. Click Add seeding rule and define a source language, target language, entity type, and (optionally) one or more bundles.
  6. Create or translate a node in the configured target language — the layout is populated automatically.

Two permissions ship with the module: administer lb translation seed (manage rules) and reseed layout from source translation (use the manual reseed button).

Additional Requirements

  • Drupal 11.1+ (uses OOP hook implementations via the #[Hook] attribute)
  • Layout Builder (core)
  • Content Translation (core)
  • Language (core)
  • Layout Builder Asymmetric Translations (layout_builder_at, contrib) — hard dependency

Without layout_builder_at and the bundle-level field-translatability step above, all translations share one stored layout and seeding has no observable effect.

Similar projects

  • Layout Builder Asymmetric Translations (layout_builder_at) — provides the per-translation layout storage this module depends on. Includes an opt-in "Copy blocks into translation" checkbox widget, but on save it copies only the section structure with all components stripped. This module instead copies the full layout (sections + components + inline blocks) automatically.
  • Layout Builder Symmetric Translations (layout_builder_st) — keeps one layout shared across all translations. Use this if you want translated content (titles, body) but a single shared layout. This module is the opposite design: each translation gets its own layout, seeded from the source on creation.
  • Entity Clone (entity_clone) — clones whole entities, not translations of a single entity. Different problem space.

Supporting this Module

Issues and feature requests are tracked in the module issue queue. Patches and merge requests are welcome.

Community Documentation

The module's README in the Git repository contains additional technical notes (test commands, internal architecture, limitations).

Supporting organizations: 

Project information

Releases