Translations
SES ships a database-backed translation catalog (built-in languages: en, nl, de). It follows a proven seed → translate → publish workflow, so translations go live at runtime — no rebuild or redeploy needed.
The workflow
- Seed — import new application strings into the catalog for every enabled language.
- Translate — translators edit each language, or use Auto-translate to create drafts.
- Approve — only approved strings (not fuzzy, not "needs review") may ship.
- Publish — publishing makes the change live immediately; no rebuild is required.
Where to manage it
Translations are edited in the admin panel under Administration → System → Translations.
Management commands
| Command | Purpose |
|---|---|
python manage.py add_language <code> | Create a catalog for a new language (e.g. add_language de) |
python manage.py sync_translations -l <code> | Import new .po msgids (additive) |
python manage.py export_translations -l <code> | Write .po and compile .mo |
python manage.py check_translations --fail | Coverage gate — fails while anything is missing/fuzzy |
Adding a language
python manage.py add_language de
python manage.py sync_translations -l de
Then translate and publish in the admin Translations page.
Distribution
After exporting, commit the .po files so the target instance's deployment
playbook can import them. The Dockerfile compiles .po → .mo on build.