edx-i18n-tools
edX Internationalization Tools
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no known vulnerabilities, uses a permissive license, and solves a real problem for Django projects that need multi-language support. Install friction is low and dependencies are standard. It is most useful if you are already using Django and Transifex; if you manage translations differently, you may not need it.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires msgcat (from gettext) to be installed and in PATH for some operations; on macOS, install via `brew install gettext`.
- Low install friction with a pure-Python wheel distribution.
- Actively maintained with a recent release and no known vulnerabilities.
License · maintenance · safety
Apache License 2.0 (permissive) — Licensed under Apache License 2.0 (permissive), so you can use, modify, and distribute it freely in commercial and open-source projects without copyleft obligations.
last release 2026-03-10 (157 days) · last repo commit 2026-08-10 · 26 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 79,126 downloads/mo, #14,378 on PyPI
Alternatives
Verify before relying
pip install edx-i18n-tools
# Extract source strings into .po files
i18n_tool extract
# Validate translation files for errors
i18n_tool validate
# Compile .po files to .mo message files
i18n_tool generate- Whether the package works with Python versions other than 3.12, given the classifier lists only 3.12 but requires_python is unspecified.
- Current status of Transifex integration and whether it remains compatible with modern Transifex API versions.
What it is and what it does
edX i18n Tools is a command-line utility for managing translations in Django projects and apps. It wraps the standard gettext workflow (extraction, compilation, validation) and adds convenience commands for working with Transifex, a translation management platform. The tool reads configuration from a YAML file and operates on .po (Portable Object) translation files, generating .mo (Machine Object) compiled files and providing validation to catch translation errors before deployment.
The package is designed for development teams and translators working on Django-based projects that need to support multiple languages. It handles both Django projects (where config lives at `./conf/locale/config.yaml`) and Django apps (where config is at `./locale/config.yaml`), and can extract strings from Python, JavaScript, and JSX files. It depends on Django, lxml for XML parsing, polib for .po file manipulation, and pyYaml for configuration.
Use it for
- Extract translatable strings from Django source code and populate .po files as part of a continuous localization workflow.
- Validate .po translation files for syntax errors, missing translations, and tag mismatches before uploading to Transifex.
- Compile .po files into .mo binary format for deployment in production Django applications.
- Push source and translated .po files to Transifex and pull completed translations back into the project.
- Generate test-language (Esperanto) .po files to verify that the extraction and compilation pipeline works correctly.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no known vulnerabilities, uses a permissive license, and solves a real problem for Django projects that need multi-language support. Install friction is low and dependencies are standard. It is most useful if you are already using Django and Transifex; if you manage translations differently, you may not need it.
Install
edx-i18n-tools on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a recent release and no known vulnerabilities. Depends on standard libraries (Django, lxml, pyYaml, polib, path) that are widely used and well-supported.
Requires msgcat (from gettext) to be installed and in PATH for some operations; on macOS, install via `brew install gettext`.
License in practice
Licensed under Apache License 2.0 (permissive), so you can use, modify, and distribute it freely in commercial and open-source projects without copyleft obligations.
Quickstart
pip install edx-i18n-tools
# Extract source strings into .po files
i18n_tool extract
# Validate translation files for errors
i18n_tool validate
# Compile .po files to .mo message files
i18n_tool generate
Verify before relying
- Whether the package works with Python versions other than 3.12, given the classifier lists only 3.12 but requires_python is unspecified.
- Current status of Transifex integration and whether it remains compatible with modern Transifex API versions.
Package facts
| License | Apache License 2.0 permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesDjangolxmlpathpolibpyYaml |
| Maintenance | Actively maintained 157 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 79,126 / month, #14,378 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.2Intended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.12 |
Evidence: edx_i18n_tools-2.0.0-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “django translation extraction”
- edx-i18n-toolsCommand-line tool for extracting, compiling, validating, and managing…
- django-statici18nCompiles Django's JavaScript internationalization catalogs to static…
- wagtail-localizeWagtail Localize is a translation plugin for Wagtail CMS that enables…
Give your agent the search over MCP, or paste the wish link into any chat.
More Linguistic packages
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
tiktoken is a fast BPE tokenizer that converts text into token sequences compatible with OpenAI models, supporting multiple encoding schemes including o200k_base and model-specific encodings.
Install it if you work with OpenAI APIs or need to understand token boundaries in GPT-family models.
Detects character encoding and language in byte sequences with high accuracy, supporting 99 encodings and returning confidence scores, language tags, and MIME types.
Install it if you need to detect character encoding or language in byte data; the rewrite makes it substantially faster and more accurate than its predecessors.
Converts Unicode text to ASCII by transliterating non-ASCII characters into their closest ASCII equivalents, with no runtime dependencies.
However, if transliteration quality or ongoing maintenance matters, consider unidecode instead despite its GPL-only license.
Lark is a parsing library that builds abstract syntax trees from context-free grammars, supporting multiple parsing algorithms (Earley, LALR(1), CYK) with automatic line and column tracking.
Python bindings to the tree-sitter parsing library, enabling incremental parsing and syntax tree analysis for source code.
See also django-extensions · translate-toolkit · oslo.i18n · wagtail-localize · polib · edx-enterprise · edx-ccx-keys · edx-django-release-util · babel · python-i18n