Soft launch Dialecto is still in testing, and details on this site may change as we finish it.

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.