Canvas Multilingual Module Adds Translation Support to Drupal Canvas
A contributed module, Canvas Multilingual, introduces translation support to Drupal Canvas by addressing issues that prevent the editor from functioning correctly in multilingual environments.
Developed by David Palmero Jara, the module resolves problems encountered when using Canvas with language-prefixed URLs such as /en/, /es/, and /ca/. These include blank editor screens, translation loss caused by autosave behaviour, and missing CSS assets returning 404 errors, which limit the use of Canvas in multilingual production setups.
In a LinkedIn post, Palmero Jara traces these issues to architectural gaps within Canvas. The controller removes language prefixes from internal paths, the React-based editor generates API calls without language context, and the autosave system recreates entities in a way that discards translations not actively being edited. Additional failures occur when translation variants lack required fields such as titles.
The module introduces fixes for each of these issues and adds a language selector within the editor interface. It implements an asymmetric translation model, ensuring that each language version is handled independently so that edits in one translation do not overwrite others.
From a development perspective, the project includes 18 files and approximately 2,500 lines of code. It meets coding standards with PHPCS compliance, passes PHPStan level 9 checks, and includes 13 kernel tests with 196 assertions. The module has been tested with Canvas 1.3.1 and Drupal 11.3.5.
The project is currently released as 1.0.0-beta1 and is not covered by Drupal’s security advisory policy. The developer has indicated that the next step is to contribute these fixes upstream to the Canvas project as individual merge requests.
More information and access to the code are available in the project repository.

