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.jsonandcms.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
.potranslation files:cd i18n-tools paver i18n_extract - Edit the language files (
.pofiles inconf/locale/):- Example: Edit
conf/locale/es/LC_MESSAGES/django.pofor 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. 🚀