Django / Python
Django’s i18n is gettext at heart — django-admin makemessages produces
the same .po/.pot catalogs Dialecto edits. Full Django support is on
the roadmap; this page states the current boundary plainly.
What already works
The editing engine is runtime-agnostic gettext: any valid PO file
round-trips byte-faithfully (wrapping, plural forms, obsolete #~ and
previous #| entries, all comment kinds), and every change lands as a
one-line-per-change diff. Django catalogs are valid PO catalogs; the
engine holds.
What is Elixir-only today
The framework adapter — the per-runtime layer — has one
implementation: Elixir/Phoenix. It owns path conventions
(locale/<lang>/LC_MESSAGES/django.po in Django’s case), usage-snippet
extraction from the runtime’s gettext calls (gettext(),
gettext_lazy(), {% trans %}), and the source call-site rewrite on
rename. Until a Django adapter exists, a gettext repository can only be
registered with the elixir framework — there is no Django setup flow
yet, and we won’t document one that can’t be completed.
The roadmap
Django/Python is a designed-for runtime — the adapter seam isolates exactly the concerns above so a new runtime doesn’t touch the engine. When the Django adapter lands, this page becomes a full guide like the Elixir guide.
Want it sooner? Tell us — adapter order follows demand.