Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
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

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.

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(19.2 kB) Copy SHA256 Hash SHA256
py2.py3 Wheel Mar 3, 2017
(123.6 kB) Copy SHA256 Hash SHA256
Source Mar 3, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting