Skip to content

Quick Start

This guide assumes you already have django-modeltranslation set up with translated models.

1. Configure the backend

# settings.py
TRADUIRE = {
    "BACKEND": "django_traduire.backends.deepl.DeepLBackend",
    "SOURCE_LANGUAGE": "fr",  # your content language
    "BACKEND_OPTIONS": {
        "auth_key": "your-deepl-api-key",
    },
}

If SOURCE_LANGUAGE is omitted, it defaults to your LANGUAGE_CODE.

2. Translate a single instance

from django_traduire import translate_instance

article = Article.objects.get(pk=1)
translate_instance(article)

This reads title_fr, body_fr, etc. and populates title_de, title_en, title_it — only for empty fields.

3. Batch translate with the management command

# Translate everything
python manage.py traduire

# Translate one model
python manage.py traduire myapp.Article

# Preview without changes
python manage.py traduire --dry-run

4. Add admin actions (optional)

from django_traduire.admin import TraduireMixin
from modeltranslation.admin import TranslationAdmin

@admin.register(Article)
class ArticleAdmin(TraduireMixin, TranslationAdmin):
    pass

Select articles in the admin, then use the "Translate empty fields" action.

5. Enable auto-translate (optional)

TRADUIRE = {
    ...
    "AUTO_TRANSLATE": True,
}

Now every save() will trigger translation of empty fields automatically.