Summary
When I use Canvas Translate the language dropdown in Canvas allows me to delete the translation but not to create a new one. But I can still preview nonexistent translations (no checkmark on it).

Since there is no way to get to Canvas Translate here, I can only get there by going to the sidebar AGAIN finding the page and language there. This is sort of fine as long as there are only a few pages, but once there are many pages, needing to find the page again there is going to be a big pain IMHO.
[See comment #5 for video]
When trying to edit translations the Canvas listing lists translations the same way as regular pages. This is also how node listings work. (The language column is added by Drupal CMS but the listing has translations the same way in Canvas). Edit operation on a translation goes to editing the original content NOT the translation. The Translate operation on a Canvas Page goes to the full list of pages again (Canvas Translate does not have the kind of view that core has where ONE entity can list their translations). So I (a) need to personally know this is a translation and NOT click Edit on it. (b) Click Translate and AGAIN find the page there manually.
[See comment #5 for video]
Steps to reproduce
Proposed resolution
Discuss how to integrate Canvas Translate so people can find where to translate things.
IMHO ideally Canvas Translate would hook into both the Canvas language preview list and also alter Drupal entity operations so it is wired into both the main Canvas preview and also the Drupal based operations outside of Canvas. Currently it is wired into neither.
| Comment | File | Size | Author |
|---|---|---|---|
| #4 | Screenshot 2026-09-15 at 14.59.41.png | 276.65 KB | gábor hojtsy |
| Screen Recording 2026-09-15 at 15.27.52.mov | 33.08 MB | gábor hojtsy | |
| Screen Recording 2026-09-15 at 15.21.54.mov | 7.76 MB | gábor hojtsy | |
| Screenshot 2026-09-15 at 15.19.14.png | 1.11 MB | gábor hojtsy |
Issue fork canvas_translate-3623308
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
gábor hojtsyComment #3
gábor hojtsyOne thing I had locally was an operation alter that Canvas Translate could have that would
(a) modify the "Edit" operation to "Edit original" for a translation
(b) add an "Edit translation" operation with 0 weight to come first
But this still has the "Translate" operation which goes to the main page listing of Canvas Translate where you still need to find your page again. If we would remove that then there would be no way to go to OTHER translations of the Canvas page.
Also there is still only one way to add a Canvas Page translation by going to Canvas Translate and finding the page again there.
Comment #4
gábor hojtsyScreenshot of my half cooked attempt from earlier:
Comment #5
gábor hojtsyMoving video embeds here to issue summary can still be edited (and thus comments can be posted) without high access levels.
Video of trying to get from within Canvas to Canvas Translate:
Video of trying to get from outside of Canvas from the pages listing to Canvas Translate:
Comment #6
gábor hojtsyComment #7
f0ns commentedLooked into this in detail. Here is a list of what I think this module can fix directly on its own versus what needs to be fixed in Canvas itself (checked against Canvas 1.12.0).
Fixable in canvas_translate:
/page/{id}/translations) are rerouted byTranslateRedirectController::overview()to the extension root, so the page context is lost. That's why Translate dumps you in the full list. Canvas already supports deep links into extensions (/canvas/app/canvas_translate/page/1/nlis forwarded to the iframe as#/page/1/nl), so the redirect could pass the page along instead./page/:id/:langcodebut no per-page overview. A/page/:idroute listing every language with its status and a translate/edit action would cover the "all translations of one entity" view, and be the redirect target for the Translate tab.edit-formlink, which carries no language, and Canvas can't open a translation for editing anyway:/nl/canvas/editor/canvas_page/1redirects to the unprefixed path, and non-default languages only open in preview. So "Edit translation" has to point at Canvas Translate, as in that screenshot.Needs a change in canvas:
1. The language dropdown in 1.12 already has "Add translation" / "Edit translation" buttons per language, shown when
translations.links[langcode]has acreateoredit-formlink. ButApiLayoutControlleronly ever emitsdelete-form(and only for existing translations), with no alter hook, so those buttons never appear. If Canvas let modules provide those links, Canvas Translate could point them at/canvas/app/canvas_translate/page/{id}/{langcode}and the dropdown problem is solved.Update: I think this would only need one new issue on canvas as https://git.drupalcode.org/project/canvas/-/work_items/3591932 is a good fit for the first change that I mentioned. I've added a comment there.
2. The Canvas sidebar operations are hardcoded in
ApiContentControllers::getEntityOperations()with no alter hook. If Canvas made them alterable, Canvas Translate could add a "Translate" entry pointing at the page in the extension.Created issue: https://git.drupalcode.org/project/canvas/-/work_items/3592132
Proposal: scope this issue to the canvas_translate items and open Canvas issues for the other two, linked from here.
Comment #9
f0ns commentedOpened an MR covering the canvas_translate items from #7: Translate lands on the page's own overview, and a translation's row in the pages listing leads with "Edit translation" (with "Edit original" for the source).
Attached a short demo. The Canvas-side items (language dropdown, sidebar operations) need changes in Canvas and aren't part of this MR.
Demo video in the MR description: !12.
Comment #10
f0ns commentedComment #11
f0ns commentedMR !12: Translate now opens the page's own overview, and a translation's row gets Edit translation (core's Edit becomes Edit original).
Comment #12
f0ns commentedComment #13
gábor hojtsyUnfortunately regression in Canvas is that the "Edit" button is not shown in the navigation top bar for translated pages anymore, in fact there is no operation shown now, so users don't know what to do. I think this MR probably already fixes that but would be important to check. (The Edit button before was going to the English original like in the view, so I think it was wrong earlier, but it at least lead you into Canvas, now there is not even an affordance for that).
Comment #15
lauriiiComment #17
lauriiiThank you! I added entry points from the language list in Canvas too which makes this a bit more complete.