Skip to main content

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 >= 5.2 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 py3.11-django4.2-wagtail5.2 or specific test tox -e py3.11-django4.2-wagtail5.2-sqlite -- 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.

Metadata

Release files for wagtail-localize-git 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wagtail-localize-git 0.15.0
File Size Uploaded
wagtail_localize_git-0.15.0.tar.gz 14.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wagtail-localize-git 0.15.0
File Interpreter ABI Platform
wagtail_localize_git-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.8 kB

Release files / wagtail_localize_git-0.15.0.tar.gz

Download URL wagtail_localize_git-0.15.0.tar.gz
Size 14.4 kB
Tags Source
SHA-256 checksum
How to use checksums
73fbcebe7348899cb147e7f9542264f00f3eb63de0c98b4a284550365bd1a6cb
BLAKE2b-256 checksum
How to use checksums
8acf32af4ceb6fd76017ce2b5950fcc84795fb5857c1f9411bc9968710cea63f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 25, 2024.

Transparency log

Release files / wagtail_localize_git-0.15.0-py3-none-any.whl

Download URL wagtail_localize_git-0.15.0-py3-none-any.whl
Size 16.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c9ce2b70a2626ba0a7c9dba409950bab5ad4e999c0d397a14c8da57f6136305
BLAKE2b-256 checksum
How to use checksums
de821b77d11235a248892420b3a1285e9085edc83915f0adbcbbb72ee7f08252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 25, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.10.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page