Custom UI rebranding for Canvas LMS using:
config/locales/en-x-custom.ymlpublic/javascripts/canvas-workbook-saved.js
This setup is designed to avoid changing Canvas core Ruby/ERB files.
Main terminology updates include:
- Quizzes -> Fellow Workbooks
- Modules -> Mentor Materials
- Files -> Artifacts
- Teacher/teachers -> Mentor/mentors
- Student/students -> Fellow/fellows
Examples:
- "Take the Quiz" -> "Begin Workbook"
- "Resume Quiz" -> "Resume Workbook"
- "Submit Quiz" -> "Submit your Workbook"
- Quiz statistics labels switched to workbook wording
- Many related quiz/module/file labels and messages are overridden
This script handles UI text generated by frontend JavaScript (which is not always controlled by en-x-custom.yml):
- "Quiz saved ..." -> "Workbook saved ..."
- Files search placeholder from "Search for files" -> "Search for Workbooks"
Some Canvas frontend strings are loaded from JS translation bundles (commonly en.json) instead of reading from en-x-custom.yml directly. Because of this, a small theme JS helper is used for those specific labels.
Copy locale file to Canvas:
config/locales/en-x-custom.yml
Ensure custom locale is registered in config/locales/locales.yml so it appears in language settings.
In Canvas Theme Editor, upload/select:
canvas-workbook-saved.js
This should be attached as the account theme JavaScript file.
Set language to your custom locale (English Custom / en-x-custom) at account/user level as needed.
- Restart app processes after locale file updates
- Hard refresh browser after theme updates
- This repository keeps customizations isolated to custom locale + theme JS.
- No Canvas core helper/view/controller edits are required for this approach.