Skip to main content

Zope Template Application Language (TAL)

Project description


Latest release Supported Python versions Documentation Status

The Zope3 Template Attribute Languate (TAL) specifies the custom namespace and attributes which are used by the Zope Page Templates renderer to inject dynamic markup into a page. It also includes the Macro Expansion for TAL (METAL) macro language used in page assembly.

The dynamic values themselves are specified using a companion language, TALES (see the zope.tales package for more).

The reference documentation for the TAL language is available at

Detailed documentation for this implementation and its API is available at


4.5 (2021-05-28)

  • Avoid traceback reference cycle in TALInterpreter.do_onError_tal.
  • Add support for Python 3.8 and 3.9.
  • Drop support for Python 3.4.

4.4 (2018-10-05)

  • Add support for Python 3.7.

4.3.1 (2018-03-21)

4.3.0 (2017-08-08)

  • Drop support for Python 3.3.
  • Add support for Python 3.6.

4.2.0 (2016-04-12)

  • Drop support for Python 2.6 and 3.2.
  • Accept and ignore i18n:ignore and i18n:ignore-attributes attributes. For compatibility with other tools (such as i18ndude).
  • Add support for Python 3.5.

4.1.1 (2015-06-05)

  • Suppress deprecation under Python 3.4 for default convert_charrefs argument (passed to HTMLParser). Also ensures that upcoming change to the default in Python 3.5 will not affect us.
  • Add support for Python 3.2 and PyPy3.

4.1.0 (2014-12-19)


Support for PyPy3 is pending release of a fix for:

  • Add support for Python 3.4.
  • Add support for testing on Travis.

4.0.0 (2014-01-13)

  • Fix possible UnicodeDecodeError in warning when msgid already exists.

4.0.0a1 (2013-02-15)

  • Replace deprecated zope.interface.implements usage with equivalent zope.interface.implementer decorator.
  • Add support for Python 3.3 and PyPy.
  • Drop support for Python 2.4 and 2.5.
  • Output attributes generate via tal:attributes and i18n:attributes directives in alphabetical order.

3.6.1 (2012-03-09)

3.6.0 (2011-08-20)

  • Update talinterpreter.FasterStringIO to faster list-based implementation.
  • Increase the default value of the wrap argument from 60 to 1023 characters, to avoid extra whitespace and line breaks.
  • Fix printing of error messages for msgid conflict with non-ASCII texts.

3.5.2 (2009-10-31)

  • In talgettext.POEngine.translate, print a warning if a msgid already exists in the domain with a different default.

3.5.1 (2009-03-08)

  • Update tests of “bad” entities for compatibility with the stricter HTMLParser module shipped with Python 2.6.x.

3.5.0 (2008-06-06)

3.4.1 (2007-11-16)

  • Remove unnecessary dummyengine dependency on zope.i18n to simplify distribution. The dummyengine.DummyTranslationDomain class no longer implements zope.i18n.interfaces.ITranslationDomain as a result. Installing zope.tal with easy_install or buildout no longer pulls in many unrelated distributions.
  • Support running tests using test.
  • Stop pinning (no longer required) zope.traversing and versions in buildout.cfg.

3.4.0 (2007-10-03)

  • Update package meta-data.


  • Update dependency on zope.i18n to a verions requiring the correct version of, avoiding a hidden dependency issue in


Changes before 3.4.0b1 where not tracked as an individual package and have been documented in the Zope 3 changelog.

Download files

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

Source Distribution

zope.tal-4.5.tar.gz (89.9 kB view hashes)

Uploaded source

Built Distribution

zope.tal-4.5-py2.py3-none-any.whl (138.6 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page