New objects arrive in one language
A product import or a new blog post shows up in English. The other languages stay empty until someone fills them field by field.
django-parler · ponyglot[parler]
Blog posts, product catalogs, app content: if it's stored with django-parler, Ponyglot finds the translated fields, fills the missing languages and flags what changed since the last run.
django-parler stores the translations. Getting them written, and keeping them current, is left to you.
A product import or a new blog post shows up in English. The other languages stay empty until someone fills them field by field.
A product description gets rewritten. The French and Italian descriptions now describe something else, and nothing flags it.
Thousands of catalog entries times several languages is not a job for an editor with a browser tab open.
Translated fields on your TranslatableModels are found automatically, including those of third-party apps like djangocms-stories.
Every translated field is fingerprinted. When the source changes, only the stale fields are retranslated.
Results come back as suggestions next to the current text. An editor accepts them, and nothing is overwritten without approval.
Usage-based plans for apps and catalogs. Glossary and translation memory keep product terms consistent, and memory hits don't count towards your characters.
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[parler]"
# settings.py
INSTALLED_APPS += [
"ponyglot",
"ponyglot.contrib.parler",
]
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 reads the translated fields django-parler already knows about.
Yes. djangocms-stories uses django-parler, and its posts share the glossary and translation memory with your django CMS pages.
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[modeltranslation]
Per-language columns, including wagtail-modeltranslation projects.
We're onboarding a small group of agencies and product teams running multilingual django CMS, Wagtail or Django sites.
Join early access