Translations
The Translations page manages the database-backed UI translation catalog (built-in languages: en, nl, de). It follows a seed → translate → publish workflow so translations go live at runtime — no rebuild or redeploy needed.
The workflow
- Seed — import application strings for every enabled language
- Translate — edit each language, or use Auto-translate to create drafts
- Approve — only approved strings (not fuzzy, not "needs review") ship
- Publish — publishing is live immediately, no rebuild required
Where to manage it
Use Administration → System → Translations to seed, translate and publish.
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.