Early access · django CMS · Wagtail · parler · modeltranslation

Your Django stack, fluent in every language.

Machine translation is solved. Keeping five languages consistent, current and reviewed is not. Ponyglot is one translation layer for your CMS pages and your app models — with a shared glossary, translation memory and delta sync.

/pricing/ — source changed 2 min ago
SegmentDEFRIT
Headline
Plan introstalestalestale
Feature list · 4review
FAQ · Billingstalestale
6 of 212 segments need work · glossary: 38 terms Retranslate stale → drafts

What free plugins can't do

A “translate this page” button exists for every CMS. The pain starts the week after: the English page changes, the blog lives in another app, the product catalog uses a third library, and “cart” is translated three different ways.

Consistency

One glossary and one translation memory across CMS pages and app models. A term is translated the same way everywhere, in every language.

Currency

Delta sync tracks every source segment. When the English page changes, you see exactly which sentences are stale in French and Italian — and retranslate only those.

Control

Nothing is published automatically. CMS content lands as drafts, model content as suggestions with a diff. Editors approve.

Coverage

django CMS, Wagtail, django-parler and django-modeltranslation in one product — so the blog, the product catalog and the pages finally speak the same language.

How it works

  1. Install a connector

    Open-source, BSD-licensed, one pip install per stack. It finds your translatable content — plugins, StreamField blocks, parler and modeltranslation fields.

  2. Ponyglot tracks every segment

    Each piece of source text gets a stable ID and a fingerprint. Change the source and every target language knows it's stale.

  3. Translate what changed

    DeepL or LLM, guided by your glossary, translation memory and brand voice. QA checks links, placeholders, length and HTML.

  4. Editors approve

    Results land as versioned drafts or model suggestions with a diff. Nothing goes live without a human.

# settings.py
INSTALLED_APPS += [
    "ponyglot",
    "ponyglot.contrib.djangocms",   # or .wagtail
    "ponyglot.contrib.parler",      # or .modeltranslation
]
PONYGLOT = {
    "API_KEY": env("PONYGLOT_API_KEY"),  # or your own DeepL / LLM key
    "SOURCE_LANGUAGE": "en",
}

Planned API — subject to change during early access.

One layer, the whole Django stack

Pages, blog, product catalog and app content share one glossary and one translation memory.

django CMS

ponyglot-djangocms

Pages, placeholders and plugin trees — structure-aware, lands as versioned drafts.

Wagtail

ponyglot-wagtail

StreamField and rich text, plugs into wagtail-localize as a translation backend.

django-parler

ponyglot-parler

Translated models like djangocms-blog, catalogs and app content.

django-modeltranslation

ponyglot-modeltranslation

Per-language columns, including wagtail-modeltranslation projects.

Pricing

Planned launch pricing. Early-access pilots get a discount for the first three months.

For sites and agencies

Open source

€0

bring your own key

  • Translate pages, plugins, blocks and models
  • Alt text and meta descriptions
  • DeepL or LLM with your own API key

Pro

€79

per site / month

  • Hosted engines, EU hosting, no keys
  • 500k characters / month
  • Translation memory and glossary
  • Delta sync and stale-segment overview
  • Review queue, QA checks, brand voice

Agency

€299

per month, 10 sites

  • Everything in Pro
  • 3M characters pooled
  • Multi-site dashboard and client reports
  • Roles and white label

For apps and catalogs (usage-based)

Growth

€49

per month, incl. 1M characters · then ~€15 per 1M characters

Scale

€199

per month, incl. 6M characters · then ~€10 per 1M characters

Prices excl. VAT. Translation memory hits don't count towards your characters.

Questions

Is it open source?

The connectors are BSD-licensed and work on their own with your own DeepL or LLM key. The hosted service adds translation memory, glossary, delta sync, review and QA.

Where is my content processed?

The hosted service runs in the EU. Content is only sent to the translation engines you enable.

Does it replace wagtail-localize?

No — on Wagtail, Ponyglot plugs into wagtail-localize as a translation backend and adds glossary, memory and delta sync on top of your existing workflow.

Will it publish translations automatically?

No. CMS content becomes a draft, model content a suggestion. An editor approves it.

Get early access

We're onboarding a small group of agencies and product teams running multilingual django CMS, Wagtail or Django sites.