Back to Canvas Lms

I18n

packages/canvas-rce/doc/I18n.md

2026-05-20.1432.2 KB
Original Source

I18n

Overview

Each locale has two I18n files that are needed: A Canvas-managed JSON file that contains translations for our custom text, and a Tiny-managed JavaScript file for native TinyMCE menus and content:

Canvas-manged JSON I18n files

  • Live in canvas-lms/packages/translations/lib/canvas-rce
  • Added to formatMessage via formatMessage.addLocale({<locale code>: <translation keys/values>})

Tiny-managed JavaScript Translation files

  • Manually pulled down from this page
  • Live in canvas-rce/src/translations/tinymce
  • Added to tinymce.I18n via tinymce.addI18n(<locale code>, <translation keys/values>

Building

Rather than import these two files into RCE individually, canvas-rce has some build tooling to copy the Canvas-managed translations over to JavaScript files (located in canvas-rce/src/translations/locales) and then mix in the Tiny-managed translations (via an import).

In the end, this results in a single JavaScript file per locale that can be imported into RCE. To handle importing the correct "combined" locale file, the build tooling also generates a helper function called getTranslations() (located at canvas-rce/src/getTranslations.js)

The "combined" locale files live in canvas-rce/src/translations/locales

For more details on the build process see canvas-rce/scripts/installTranslations.js

Adding new Locales

Adding a new locale takes a few steps to ensure things work with the I18n build tooling and runtime importing.

  1. Download the new Locale from this page
  2. Unzip the language pack and move the locale .js file to canvas-rce/src/translations/tinymce
  3. Add the new locale to the mapping of Canvas locale codes to TinyMCE locale codes in canvas-rce/src/rce/editorLanguage.js
  4. Add the new locale to the recognized array in canvas-rce/src/rce/normalizeLocale.js
  5. Run yarn installTranslations to generate the "combined" locale file
  6. git add the new Tiny-managed locale file added in step 2
  7. git add the new generated "combined" locale file found in canvas-rce/src/translations/locales
  8. git add the rest of the modified files, commit, and push \o/