Skip to content

neon-jungle/wagtail-translations

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Wagtail translations

A plugin for Wagtail that provides page translations. By extending your pages with the models included in this package users will be redirected to pages in (or closest to) their language.

Installing

Install using pip:

$ pip install wagtailtranslations

Add it to your INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    'wagtailtranslations',
    # ...
]

It works with Wagtail 2.2 and upwards. Check versions before 2.0 for compatability with older versions of wagtail.

Quick start

Define a TranslationIndex model:

from wagtailtranslations.models import AbstractTranslationIndexPage

class TranslationHomePage(AbstractTranslationIndexPage):
    subpage_types = ['ContentPage']

Use this as your site root page. Each language your site supports should exist as a separate page tree underneath this index page. The English home page should have a slug "en", for a URL of /en/; while the French home page should have a slug "fr", for a URL of /fr/.

Define a translated model:

from wagtail.admin.edit_handlers import FieldPanel
from wagtail.core.fields import RichTextField
from wagtail.core.models import Page
from wagtailtranslations.models import TranslatedPage

class ContentPage(TranslatedPage, Page):
    body = RichTextField()

    content_panels = Page.content_panels + [
        FieldPanel('body'),
    ]

Enable some languages in the Wagtail admin → Settings → Languages, for example English and French.

Create a new ContentPage for English. On the 'Translations' tab, select English for the language, and leave the 'Translation of ...' field blank.

Create another new ContentPage for French. On the 'Translations' tab, select French for the language, and select the English page you just created in the 'Translation of ...' field.

Testing

To start a test server, run:

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -e .
$ export DJANGO_SETTINGS_MODULE=tests.settings
$ django-admin migrate
$ django-admin createsuperuser
$ django-admin runserver

To run the automated test suite:

# Do not run this from within a virtual environment
$ pip install --user --upgrade tox pip setuptools
$ tox

About

Translated pages plugin for Wagtail

Resources

License

Stars

Watchers

Forks

Packages

No packages published