Languages
Frontend Edit builds its Edit Menus from the content elements found on the rendered page. Because TYPO3 renders translated pages differently depending on the configured language mode, this page documents which modes are supported and how the extension resolves the correct record to edit.
How translations are resolved
The injected script collects the content element ids (c<uid>) from the DOM
and sends them to the backend. In connected mode (language overlay) TYPO3
keeps the default-language uid on the overlaid row, so the DOM anchor carries
the default-language (L0) uid rather than the translation uid.
Frontend Edit therefore resolves translations on the server side via the
l18n_parent pointer: for every requested L0 uid it also looks up the matching
translation and, when both exist, the translation wins. This guarantees that the
edit link targets the translation uid — TYPO3 FormEngine cannot switch the
edited record via a language parameter alone.
Mode support matrix
| Language mode | Edit menu | Behavior |
|---|---|---|
| Default language (L0) | ✅ | Elements are matched directly by their uid. |
Connected mode / overlay (fallbackType: strict or fallback) | ✅ | Translations are resolved via l18n_parent; the edit link targets
the translation uid. |
| Fallback-rendered default element | ✅ | When no translation exists on a translated page, the default-language element still receives a menu (edits the L0 record). |
| Free mode | ✅ | Translated elements are standalone records with their own uid and are matched directly. |
All languages (sys_language_uid = -1) | ✅ | Matched directly by uid, independent of the active language. |
Chained translation (l10n_source ≠ l18n_parent) | ✅ | Resolved via the canonical l18n_parent pointer, not
l10n_source. |
Note
In connected mode the edit link always opens the translated record. Switching the edited language happens automatically through the resolved translation uid, so no manual language switch is required.