Postponed
Project:
Drupal Canvas
Version:
1.x-dev
Component:
… to be triaged
Priority:
Critical
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
1 Apr 2026 at 02:10 UTC
Updated:
22 Apr 2026 at 08:08 UTC
Jump to comment: Most recent
Comments
Comment #3
wim leersGood news!
That should allow this MR to become simpler, like we discussed 🤞
Comment #4
wim leersComment #6
wim leers!885 looks promising! Can we get some screenshots? 🙏
Comment #7
tedbowAdd screens directly to !885 to make it clear which MR is related to screenshots(also easier to add on gitlab)
Comment #8
wim leersThose screenshots look amazing! 🤩 Great progress, important validation for #3582478: Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI — thanks!
Comment #9
wim leersI've incorporated many of the foundational bits in @tedbow's MR here in !898 for #3582478: Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI — grep the commits for "tedbow" :)
@tedbow: Based on my research due to the way TMGMT works combined with how Canvas stores its data, you AFAICT could only ever have succeeded in surfacing plain strings, because those end up storing
<input name>: <string value(e.g.heading: 'Oh hello there).So AFAICT this MR could not have made work multi-property field types such as the
linkfield type which is used to populatetype: string, format: uri. Is that right?Comment #10
wim leersIf we end up making this work, it would have to land after #3582478: Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI. Reflecting that in the issue title.
Comment #11
tedbow@wim-leers re #9. It seems like you have investigated this further down the rabbit than I have. When I got formatted text to work with config_translation by using
\Drupal\config_translation\FormElement\Textareathis actually failed on\Drupal\tmgmt\Data::wordCountbecause it assume it was a string in$text = strip_tags($text);I figured we could swap that service if that was only blocker but I did't look further. I can look into this. Maybe just bypass that local to see if getting by that will just open more problems.
Comment #12
wim leersI ran into the
wordCountthing too, it's in the stack trace in the MR comment I linked from #9. The only way to avoid it is to build a customConfigProcessorInterface(which you started doing in !833).It'd have to extract just the string field properties of multi-property field types (so for the
textfield type, extract onlyvalueas a translatable) and pass along other field properties as context (soformat: canvas_html_block) — or something along those lines.Comment #16
wim leersAdjusting issue title to reflect why this is so important.
In a meeting with @lauriii yesterday, he emphasized the intent to make translations focus just on strings, because that would allow:
Related: @tedbow opened #3585452: Create a preview mode for non-default languages in which he shows what the initial goal is: translate outside Canvas' UI, (pre)view translations inside Canvas' UI.
Comment #17
wim leersDue to core's Content Translation UX relying on field widgets, and Canvas' "component tree" field type not having a widget, #3583684: [PP-1] Symmetric translations for content entities should allow only translatable properties in inputs to be overridden is kinda forced to use TMGMT to translate content-defined component trees.
IOW: ~50% of this issue is being implemented there. Postponing this on that one.