This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Records gettext translation messages and synchronizes to message catalogs.

Project Description

The recorder is attached to an existing translation function keeps
track of the inputs and outputs.

The result is a *locales* directory structure::


This structure is written on process exit.

Note that when the recorder is initialized, it imports any existing
message catalog. That is, it's robust to process startup/shutdown and
can operate continuously.


In Python-code, enable the translation recorder by wrapping an
existing translation function.

The easiest way to wire this up is by patching the module that holds
the function (if possible)::

import zope.i18n
import translationrecorder

# Patch Zope's translation function
zope.i18n.translate = translationrecorder.Recorder(
zope.i18n.translate, './locales'

Framework Integration

There's integration included for the Pyramid and Zope/Plone

Set the environment variable ``RECORD_TRANSLATIONS`` to an existing
*locales* directory and run your server process::

$ mkdir ./locales
$ RECORD_TRANSLATIONS=./locales bin/paster serve ...

This requires that the `translationrecorder` module is imported. This
is handled automatically on Plone. For other systems::

import translationrecorder

Technically, the package applies patches against the global
translation functions of the applicable frameworks.


Malthe Borch <>


1.0.3 (2012-10-17)

- Fixed an issue where a translation would always appear with a
default text, even when not present in catalog.

- Fixed an issue where a message with a mapping would not get properly
decoded into a message id.

1.0.2 (2012-01-13)

- Fixed issue where a quote appearing in a message id or translation
would corrupt on save.

1.0.1 (2012-01-13)

- Fixed issue where generated .po-files would result in a syntax error
on compilation using ``pythongettext`` due to a missing initial
dummy message translation.

- Patch the translation domain instead of the (higher-level)
global translation function.

This fixes an issue where messages would not be recorded with the
proper translation domain and the used target languages would not be
correctly registered.

1.0 (2011-11-28)

- Initial public release.
Release History

Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
translationrecorder-1.0.3.tar.gz (5.5 kB) Copy SHA256 Checksum SHA256 Source Oct 17, 2012

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