zope.i18n
Zope Internationalization Support
What it is and what it does
zope.i18n is a mature internationalization framework for Python web applications and Zope-based systems. It provides locale objects for all locales maintained by the ICU project, gettext-based message catalogs for translating message strings, and utilities for discovering the appropriate locale from web-based requests. The package handles pluralization, number and date formatting for different locales, and integrates with the Zope component architecture through dependencies on zope.schema, zope.component, and zope.deprecation.
The package is designed for developers building multilingual applications who need robust locale support and translation workflows. It abstracts away the complexity of managing multiple language variants, character sets, and locale-specific formatting rules. Recent versions (6.0) modernized the codebase by replacing pkg_resources with PEP 420 native namespaces, and the package maintains support for current Python versions (3.9 through 3.13) and PyPy.
Use it for:
- Build a web application that serves content in multiple languages using gettext catalogs and automatic locale negotiation.
- Format numbers, dates, and times correctly for different locales without manual locale-specific logic.
- Translate user-facing messages in a Zope application using the message factory and translation domain system.
- Support character set variants (e.g., Serbian Latin vs. Cyrillic) by configuring allowed languages via environment variables.
- Integrate locale discovery into a web framework to automatically select the user's preferred language from request headers.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides internationalization and localization APIs for Python applications, including locale objects, gettext-based message catalogs, and locale discovery for web requests.
Yes, if you are building a Zope-based application or need a mature, battle-tested i18n framework with ICU locale support. The package is stable, has no known vulnerabilities, and supports modern Python versions. The aging maintenance status (336 days since release) is not a blocker for production use but suggests you should monitor the repository for security updates. The ZPL-2.1 license is OSI-approved but marked unclear in the fact sheet—verify compatibility with your project's licensing requirements before committing.
Install
zope-i18n on PyPI
pip
pip install zope-i18nuv
uv add zope-i18npoetry
poetry add zope-i18nInstalling zope.i18n
Before you install
Low install friction with a pure-wheel distribution. Maintenance status is aging—last release was 336 days ago—but the package remains actively maintained with recent commits and no known vulnerabilities.
License in practice
Licensed under ZPL-2.1 (Zope Public License 2.1), which is OSI-approved. License treatment is marked unclear in the fact sheet; review the ZPL-2.1 terms if proprietary or copyleft compatibility matters for your use.
Quickstart
pip install zope.i18n
from zope.i18n import translate
from zope.i18nmessageid import MessageFactory
_ = MessageFactory('mydomain')
message = _('Hello')
translated = translate(message, target_language='es')
Requires Python 3.9 or later; Python 3.8 and earlier are not supported.
Verify before relying
- Whether ZPL-2.1 is compatible with your project's license or distribution model
- Whether the aging maintenance status (336 days since last release) affects your risk tolerance for production use
Package facts
| License | ZPL-2.1 (unclear) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — setuptools, python-gettext, pytz, zope.deprecation, zope.schema, zope.i18nmessageid, zope.component |
| Maintenance | aging — 336 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 175,033/month — #10,273 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: zope_i18n-6.0-py3-none-any.whl
Keywords: zope3, internationalization, localization, i18n, l10n, gettext, ICU, locale
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
django-statici18nCompiles Django's JavaScript…
permissive · top 15,000 on PyPI
zope.i18nmessageidProvides message factory objects that tag…
unclear · top 5,000 on PyPI
zope.indexzope.index provides indexing structures for…
unclear · top 15,000 on PyPI
zope.sequencesortSorts sequences by multiple keys with support…
unclear · top 15,000 on PyPI
SmartlingApiSdkA Python SDK for interacting with Smartling's…
permissive · top 15,000 on PyPI
babelBabel provides internationalization (i18n) and…
permissive · top 1,000 on PyPI
pyicuPyICU wraps the ICU C++ libraries to provide…
permissive · top 15,000 on PyPI
oslo.i18noslo.i18n provides utilities for handling…
permissive · top 5,000 on PyPI
flufl.i18nflufl.i18n provides a high-level API for…
permissive · top 15,000 on PyPI
python-i18nProvides internationalization (i18n)…
permissive · top 15,000 on PyPI