Skip to main content

Wagtail Localize integration for Git-based translation services

Project description

wagtail-localize-git

Version License black pre-commit

This plugin enables translating Wagtail content using a PO files in a git repository.

It works by committing source content into the repository then polling it for updates. When the PO files are translated, this will automatically create translated pages in Wagtail.

This is useful for when you are using external translation tools for translating your Wagtail content. Currently, this plugin supports Mozilla's Pontoon, but PRs are welcome for other translation tools!

Installation

This plugin requires Wagtail >= 2.11 with internationalisation enabled and Wagtail Localize.

Install both wagtail-localize and wagtail-localize-git, then add the following to your INSTALLED_APPS:

# settings.py

INSTALLED_APPS = [
    # ...
    "wagtail_localize",
    "wagtail_localize.locales",  # Replaces 'wagtail.locales'
    "wagtail_localize_git",
    # ...
]

Then set the following settings:

WAGTAILLOCALIZE_GIT_URL - This is a URL to an empty git repository that wagtail-localize-git will push source strings to and fetch translations from. WAGTAILLOCALIZE_GIT_CLONE_DIR - The local directory where the git repository will be checked out.

By default, wagtail-localize-git will try to checkout and work with the main branch. To change that, set WAGTAILLOCALIZE_GIT_DEFAULT_BRANCH to your repository's default branch (e.g. master)

Synchronisation

Once this is configured, you can use the sync_git management command to push/pull changes. This management command should be set up in your server's crontab to run often (preferably, every 10 minutes).

How it works

This plugin uses wagtail-localize to convert pages into segments and build new pages from translated segments. wagtail-localize provides a web interface for translating these segments in Wagtail itself and this plugin plays nicely with that (translations can be made from the Wagtail side too).

Pages/snippets are submitted to the git repo when they are submitted for translation from the default locale. Pages authored in other locales are not supported yet.

Contributing

All contributions are welcome!

Install

To make changes to this project, first clone this repository:

git clone git@github.com:wagtail/wagtail-localize-git.git
cd wagtail-localize-git

With your preferred virtualenv activated, install testing dependencies:

pip install -e .[testing] -U

pre-commit

Note that this project uses pre-commit. To set up locally:

# if you don't have it yet, globally
$ pip install pre-commit
# go to the project directory
$ cd wagtail-localize-git
# initialize pre-commit
$ pre-commit install

# Optional, run all checks once for this, then the checks will run only on the changed files
$ pre-commit run --all-files

How to run tests

Now you can run tests as shown below:

tox

or, you can run them for a specific environment tox -e python3.9-django3.2-wagtail2.15 or specific test tox -e python3.9-django3.2-wagtail2.15-sqlite wagtail_localize_git.tests.test_git.TestRepository

To run the test app interactively, use tox -e interactive, visit http://127.0.0.1:8020/admin/ and log in with admin/changeme.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wagtail-localize-git-0.12.0.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

wagtail_localize_git-0.12.0-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file wagtail-localize-git-0.12.0.tar.gz.

File metadata

  • Download URL: wagtail-localize-git-0.12.0.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.10

File hashes

Hashes for wagtail-localize-git-0.12.0.tar.gz
Algorithm Hash digest
SHA256 87fab40140fc1d0eeb5d7422dd9fb979d8c3c4d33140c94ebd38f91a2f9119e8
MD5 942bde03c5f850da415c78d92fd676c3
BLAKE2b-256 171be62a7110f16ddc02f5cce0d01cea6e5c83e2780c6de6bf4a1cb239a924a6

See more details on using hashes here.

File details

Details for the file wagtail_localize_git-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: wagtail_localize_git-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 30.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.10

File hashes

Hashes for wagtail_localize_git-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 087a0f9ccd7036b2fdf36a16f07d50c3fe79b904f2985ca86f58be344a9f0f92
MD5 dd557ddc8c22d8ff8edd857c209e2f5f
BLAKE2b-256 0d78c7f0686380ded9fff8439b7b806bc694c3334c90d797bf016777ed3bf193

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page