Fallbacks hide gaps
With fallback languages set, an empty title_de quietly shows the English title.
Visitors notice, but your team doesn't.
django-modeltranslation · ponyglot[modeltranslation]
django-modeltranslation gives every field a column per language. Ponyglot fills the empty ones, flags the ones that went stale, and lets an editor approve each change.
A column per language is simple and fast. It also makes missing translations easy to miss.
With fallback languages set, an empty title_de quietly shows the English title.
Visitors notice, but your team doesn't.
The English column changes and the other columns keep the old meaning. Nothing marks them as out of date.
Adding a language adds empty columns on every registered model, often thousands of rows at once.
Fields registered in translation.py are picked up automatically, with no model
changes.
See which objects are missing a language and which translations are older than their source.
Results come back as suggestions next to the current value. An editor accepts them, and nothing is overwritten without approval.
wagtail-modeltranslation projects use the same connector, and pages and models share one glossary and translation memory.
An open-source, BSD-licensed extra for the core package. Use it with your own DeepL or LLM key, or connect it to the hosted service.
pip install "ponyglot[modeltranslation]"
# settings.py
INSTALLED_APPS += [
"ponyglot",
"ponyglot.contrib.modeltranslation",
]
PONYGLOT = {
"API_KEY": env("PONYGLOT_API_KEY"), # or your own DeepL / LLM key
"SOURCE_LANGUAGE": "en",
}
Planned API. It may change during early access.
No. Ponyglot uses the fields you already registered with django-modeltranslation.
Yes, through the same connector.
No. Results are suggestions with a diff, and an editor approves them.
No. The connector works on its own with your own DeepL or LLM key. The hosted service adds translation memory, glossary, delta sync, review and QA.
Pages, blog, product catalog and app content share one glossary and one translation memory.
djangocms-ponyglot
Pages, placeholders and plugin trees — structure-aware, lands as versioned drafts.
wagtail-ponyglot
StreamField and rich text, plugs into wagtail-localize as a translation backend.
ponyglot[parler]
Translated models like djangocms-stories, catalogs and app content.
We're onboarding a small group of agencies and product teams running multilingual django CMS, Wagtail or Django sites.
Join early access