Skip to main content

Message Identifiers for internationalization

Project description


Latest Version Documentation Status

To translate any text, we must be able to discover the source domain of the text. A source domain is an identifier that identifies a project that produces program source strings. Source strings occur as literals in python programs, text in templates, and some text in XML data. The project implies a source language and an application context.

We can think of a source domain as a collection of messages and associated translation strings.

We often need to create unicode strings that will be displayed by separate views. The view cannot translate the string without knowing its source domain. A string or unicode literal carries no domain information, therefore we use messages. Messages are unicode strings which carry a translation source domain and possibly a default translation. They are created by a message factory. The message factory is created by calling MessageFactory with the source domain.

This package provides facilities for declaring such messages within program source text; translation of the messages is the responsiblitiy of the ‘zope.i18n’ package.

Please see for the documentation.


6.0.1 (2023-03-24)

  • Drop dependency on six.

6.0.0 (2023-03-23)

  • Drop support for Python 2.7, 3.5, 3.6.

  • Add preliminary support for Python 3.12a5.

5.1.1 (2022-11-17)

  • Add support for building arm64 wheels on macOS.

5.1.0 (2022-11-06)

  • Added support for Python 3.9, 3.10 and 3.11.

5.0.1 (2020-03-10)

  • Remove deprecated use of setuptools features. See issue 22.

5.0.0 (2019-11-12)

  • Drop support for Python 3.4.

  • Add support for Python 3.8.

4.3.1 (2018-10-19)

  • Fix a regression copying Message objects in the Python implementation. See issue 14.

4.3.0 (2018-10-18)

  • Add attributes to support pluralization on a Message and update the MessageFactory accordingly.

4.2.0 (2018-10-05)

  • Fix the possibility of a rare crash in the C extension when deallocating items. See issue 7.

  • Drop support for Python 3.3.

  • Add support for Python 3.7.

4.1.0 (2017-05-02)

  • Drop support for Python 2.6 and 3.2.

  • Add support for Python 3.5 and 3.6.

  • Fix the C extension not being used in Python 3. See issue 4.

  • Make the Python implementation of Message accept any object for the default argument, just as the C extension does. This should be a unicode or byte string. See issue 5.

4.0.3 (2014-03-19)

  • Add support for Python 3.4.

  • Update to version 2.2.

4.0.2 (2012-12-31)

  • Flesh out PyPI Trove classifiers.

4.0.1 (2012-11-21)

  • Add support for Python 3.3.

4.0.0 (2012-05-16)

  • Automate generation of Sphinx HTML docs and running doctest snippets via tox.

  • Remove use of ‘2to3’ and associated fixers when installing under Py3k. The code is now in a “compatible subset” which supports Python 2.6, 2.7, and 3.2, including PyPy 1.8 (the version compatible with the 2.7 language spec).

  • Bring unit test coverage to 100%.

  • Move doctest examples into Sphinx documentation.

  • Drop explicit support for Python 2.4 / 2.5 / 3.1.

  • Add explicit support for PyPy.

  • Add ‘ dev’ alias (runs develop plus installs nose and coverage).

  • Add ‘ docs’ alias (installs Sphinx and dependencies).

3.6.1 (2011-07-20)

  • Correct metadata in this file for release date.

3.6.0 (2011-07-20)

3.5.3 (2010-08-10)

  • Make compilation of C extension optional again; 3.5.1 broke this inasmuch as this package become unusable on non-CPython platforms. Making the compilation of the C extension optional again implied removing code added in 3.5.1 which made the C extension a setuptools “Feature” and readding code from 3.5.0 which overrides the distutils build_ext command.

  • Move pickle equality tests into a unittest.TestCase test to make it easier to condition the tests on whether the C extension has been compiled. This also makes the tests pass on Jython.

3.5.2 (2010-04-30)

  • Remove use of ‘zope.testing.doctestunit’ in favor of stdlib’s ‘doctest.

3.5.1 (2010-04-10)

  • LP #257657 / 489529: Fix memory leak in C extension.

  • Fix the compilation of the C extension with python 2.6: refactored it as a setuptools Feature.

3.5.0 (2009-06-27)

  • Make compilation of C extension optional.

  • Add support to bootstrap on Jython.

  • Change package’s mailing list address from zope3-dev at to zope-dev at, because zope3-dev is now retired.

  • Reformat change log to common formatting style.

  • Update package description and docs a little.

  • Remove old .cfg files for zpkg.

3.4.3 (2007-09-26)

  • Make PyPI the home URL.

3.4.2 (2007-09-25)

  • Move the ZopeMessageFactory from to this package.

3.4.0 (2007-07-19)

  • Remove incorrect dependency.

  • Create final release to reflect package status.

3.2.0 (2006-01-05)

  • Corresponds to the verison of the zope.i18nmessageid package shipped as part of the Zope 3.2.0 release.

  • Implement ‘zope.i18nmessageid.message’ as a C extension.

  • Deprecate ‘zope.i18nmessageid.messageid’ APIs (‘MessageID’, ‘MessageIDFactory’) in favor of replacements in ‘zope.i18nmessageid.message’ (‘Message’, ‘MessageFactory’). Deprecated items are scheduled for removal in Zope 3.3.

3.0.0 (2004-11-07)

  • Corresponds to the verison of the zope.i18nmessageid package shipped as part of the Zope X3.0.0 release.

Download files

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

Source Distribution

zope.i18nmessageid-6.0.1.tar.gz (27.8 kB view hashes)

Uploaded source

Built Distributions

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