The following 3rd party packages are involved in the EdX Platform translation efforts:
Django
- https://docs.djangoproject.com/en/1.11/topics/i18n/
- Does message extraction to .po files and uses generated .mo files to actually do translations
Transifex
- https://docs.transifex.com/integrations/django/
- Service that actually handles translations, has specific Django support
- Accepts .po files in English
- Returns localized .po files
- Has mapping in the config that should allow us to get the correct filename
Babel
- https://github.com/python-babel/babel
- Python package that enhances message gathering, especially for non-.py file types
django-babel
- https://github.com/python-babel/django-babel
- Python package for helping Babel extract messages from Django-centric file types (.html, .txt, .js)
django-babel-underscore
- https://github.com/EnTeQuAk/django-babel-underscore
- Python package for helping Babel extract messages from underscore.js templates
django-static-i18n
- https://github.com/zyegfryed/django-statici18n
- Python package that generates pre-translated javascript files
mako
- http://docs.makotemplates.org/en/latest/usage.html?highlight=babel#babel
- Python templating engine, provides its own Babel extraction interface
gettext and friends
- GNU fundamental project, actually handles performing string translation using compiled .mo files (and much more)
pavelib
- https://github.com/edx/edx-platform/blob/master/pavelib/i18n.py
- Platform wrapper around edx's i18n-tools
i18n-tools
- https://github.com/edx/i18n-tools
- Wrappers that handle the details of Transifex integration, message extraction, and compiling messages