Connectors (early access)

Warning

Early access. The connector packages are in development and not on PyPI yet. Names, settings and behaviour may still change before the first stable release. To take part, write to hello@ponyglot.app.

Connectors are open-source Django apps that you install on your website. They find the translatable content, send it to Ponyglot, and write translations back as drafts or suggestions. Everything they do goes through the public API v1, so you can also write your own (see Connect a site through the API).

Packages

Package

For

ponyglot

The core, for Django 5.2+: API client, sync, the suggestion review and translation dialogs in the admin, the translation dashboard. Includes the adapters for django-parler (ponyglot.contrib.parler) and django-modeltranslation (ponyglot.contrib.modeltranslation).

djangocms-ponyglot

django CMS 5 with djangocms-versioning: any frontend-editable content (pages, posts, your own models), plugin fields read from each plugin’s form (djangocms-frontend included), drafts per language, and a translations dialog in the toolbar. Depends on ponyglot.

wagtail-ponyglot

Wagtail (planned): drafts as revisions through wagtail-localize.

Configuration

The dashboard’s Getting started shows these steps tailored to your site (see Connect your Django site):

INSTALLED_APPS += [
    "ponyglot",
    "djangocms_ponyglot",           # django CMS
    "ponyglot.contrib.parler",      # or "ponyglot.contrib.modeltranslation"
]
PONYGLOT = {
    "API_KEY": env("PONYGLOT_API_KEY"),
    "SOURCE_LANGUAGE": "en",
}

Then, on your site:

$ python manage.py migrate
$ python manage.py ponyglot check      # settings and connection
$ python manage.py ponyglot backfill   # first sync of your existing content
$ python manage.py ponyglot sync       # every few minutes, or --loop 60 as a worker

ponyglot sync sends what changed, reports editors’ decisions and fetches finished translations. ponyglot status shows the state per language, ponyglot translate requests translation from the command line.

Working with them

Each package’s README lists all settings, for example which content types and plugin fields are translated, exclusions, and emails to editors.