How to localize and translate content in Open edX?
Localizing and Translating Content in Open edX
Open edX supports localization (L10n) and internationalization (i18n) to deliver courses in multiple languages. Below is a step-by-step guide to translating the Open edX platform and course content.
1. Enable Multi-Language Support in Open edX
By default, Open edX supports multiple languages. To enable localization:
- Edit the LMS and CMS Configuration (
lms.env.json
andcms.env.json
)"LANGUAGE_CODE": "en", "LANGUAGES": [ ["en", "English"], ["es", "Español"], ["fr", "Français"] ]
- Restart Open edX:
sudo /edx/bin/supervisorctl restart all
This allows users to switch languages from the UI.
2. Translate the Open edX Platform UI
To fully localize the platform’s menus, buttons, and labels, use Transifex:
Steps to Translate UI Texts
- Clone the Open edX translation files:
git clone https://github.com/openedx/i18n-tools.git
- Generate
.po
translation files:cd i18n-tools paver i18n_extract
- Edit the language files (
.po
files inconf/locale/
):- Example: Edit
conf/locale/es/LC_MESSAGES/django.po
for Spanish translations.
- Example: Edit
- Compile the translations:
paver i18n_compile
- Restart the Open edX platform:
sudo /edx/bin/supervisorctl restart all
3. Translate Course Content in Open edX Studio
- Log in to Open edX Studio.
- Go to “Advanced Settings”.
- Find
"Course Language"
and set the course language:"course_language": "es"
- Manually translate course content:
- Update text components with multiple language versions.
- Replace videos with subtitled or dubbed versions.
4. Use XBlocks for Multi-Language Support
To provide multi-language content switching, use the Problem Builder XBlock.
Steps to Enable Multi-Language XBlocks
- Install XBlocks:
pip install git+https://github.com/openedx/xblock-utils.git
- Add
"problem-builder"
to the Advanced Modules list in Studio. - Create conditional content blocks based on the user’s language.
5. Enable Automatic Translation with Google Translate API
For auto-translating course content:
- Get a Google Cloud Translation API Key.
- Use Open edX’s API to translate course texts:
curl -X POST "https://translation.googleapis.com/language/translate/v2" \ -d "q=Hello World&target=es&key=YOUR_GOOGLE_TRANSLATE_KEY"
- Replace course text with translated output.
6. Allow Users to Select Their Preferred Language
- Enable Language Switching in the UI:
- Go to “Admin Panel” → “Site Configuration”.
- Enable the
"Enable Language Selector"
option. - Users can now choose their preferred language from the settings page.
7. Translate Certificates and Emails
To localize certificates and system emails:
- Go to Admin Panel (
/admin
). - Navigate to:
Certificates > Certificate Templates
(for certificates).Sites > Site Configuration
(for email settings).
- Upload translations for each language.
8. Use External Translation Tools
For advanced localization workflows, integrate:
- Transifex (for crowd-sourced translations).
- DeepL API (for high-quality AI translations).
- Google Sheets (for collaborative content translation).
Conclusion
With manual translations, automated tools, and multi-language XBlocks, Open edX provides a fully localized learning experience. 🚀