Skip to main content

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

  1. Seed — import new application strings into the catalog for every enabled language.
  2. Translate — translators edit each language, or use Auto-translate to create drafts.
  3. Approve — only approved strings (not fuzzy, not "needs review") may ship.
  4. 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

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.