Skip to main content
Help us improve Python packaging – donate today!

Strings extraction and other tools

Project Description


.. image:: puente_logo.jpg

Puente is a Python library that handles l10n things for Django projects
using Jinja2 templates.

* extract command to extract strings from your project and shove them into a
``.pot`` file
* merge command that merges new strings from a ``.pot`` file into locale ``.po``
* code to collapse whitespace for Jinja2's trans block
* add pgettext and npgettext to template environment and they correctly
escape things and work the same way as Jinja2's newstyle gettext
* configured using Django settings
* solid documentation
* solid tests

This is derived from `Tower <>`_, but heavily

:License: BSD 3-clause; See LICENSE
:Contributors: See AUTHORS.rst
:IRC: #puente on


>From PyPI


$ pip install puente

For hacking


# Clone the repository
$ git clone

# Create a virtualenvironment

# Install Puente and dev requirements
$ pip install -r requirements-dev.txt


See `documentation <>` for configuration and usage.


0.5 (March 3rd, 2017)

* Drop support for Django 1.7 and Jingo
* Add support for Python 3.5 and 3.6
* Add support for Django 1.9, 1.10 and 1.11b1 (#59) (Thank you, Thor K. H!)

0.4.1 (December 10th, 2015)

* Add all the Django keywords for extraction (#53)

0.4 (November 20th, 2015)

* Implement pgettext and npgettext (#45)
* Remove undocumented STANDALONE_DOMAINS setting and fix extract/merge code (#44)
* Add ngettext tests
* Rework gettext code, clarify documentation and add tests (#42)
* Project infrastructure fixes

0.3 (November 5th, 2015)

* add "Translators:" to the translator prefix list (#34)
* make ``puente.ext.i18n`` be an alias for ``puente.ext.PuenteI18nExtension``
* fix the gettext alias to be moar korrect (#35)
* fix the jingo-related docs in regards to extensions (#35)
* lots of changes to the Migrating from Tower document
* fleshed out ``test_project_jingo`` so we can use it for development
* fixed merge to handle ``LANGUAGES`` setting correctly
* first pass on Python 3.4 support (pretty sure it works) (#15)
* logo (#37)

0.2 (October 30th, 2015)

* fix requirements
* remove mention of elasticutils in release process
* fix meta information regarding python 3--we don't support that, yet

0.1 (October 30th, 2015)

Initial writing. Everything has changed!

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
puente-0.5.0-py2.py3-none-any.whl (19.2 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Mar 3, 2017
puente-0.5.0.tar.gz (123.6 kB) Copy SHA256 hash SHA256 Source None Mar 3, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page