Skip to main content

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

  1. Seed — import application strings for every enabled language
  2. Translate — edit each language, or use Auto-translate to create drafts
  3. Approve — only approved strings (not fuzzy, not "needs review") ship
  4. Publish — publishing is live immediately, no rebuild required
Where to manage it

Use Administration → System → Translations to seed, translate and publish.

Management commands

CommandPurpose
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 --failCoverage 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.