pox-convert
Convert .po (gettext) files to Excel spreadsheets and back. Supports fuzzy entries and multiple plural forms.
Usage
PO to Excel
uvx pox-convert export path/to/messages.po
Use globbing to convert multiple files at once:
uvx pox-convert export locales/**/django.po
Options:
-o, --outdir Output directory (default: current directory)
-f, --filename Filename template using {lang} and {date} variables
(default: translations_{lang}.xlsx)
-l, --language Override the language metadata from the PO file
--fuzzy How to handle fuzzy entries: stop, ignore, include (default: stop)
Excel to PO
uvx pox-convert import path/to/translations.xlsx
Options:
-o, --outdir Output directory (default: current directory)
-f, --filename Filename template using {lang} variable (default: {lang}.po)
Spreadsheet format
The generated Excel file has the following structure:
| id | Context | Singular Form | Translation |
|---|---|---|---|
| 1 | Hello | Hallo | |
| 2 | adjective | Open | Offen |
| 3 | Goodbye |
- Empty translations are highlighted in yellow with a black border
- The header row is frozen for easy scrolling
- Alternating row stripes improve readability
- Plural forms get additional translation columns
- Language metadata is stored as a custom document property
Django integration
pox-convert ships with a Django management command that wraps
makemessages to skip fuzzy matching:
python manage.py makemessages_nofuzzy -l de
Add pox.contrib.django.pox to your INSTALLED_APPS to use it.
Changelog
1.1.0
- Programmatic plural hint generation using a safe formula parser.
- Improved CI coverage reporting.
- 100% test coverage.
1.0.1
- Unified CLI with
pox-convertentry point. - Added Excel-to-PO reverse conversion (
xop). - Redesigned spreadsheet styles and column headers.
- Added MIT license, README, and GitHub Actions CI workflow.
- Full type annotations and stricter linting.
1.0.0
- Initial release with PO-to-Excel conversion.
Metadata
Release files for pox-convert 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pox_convert-1.1.0.tar.gz | 538.3 kB | Without provenance | Details for pox_convert-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pox_convert-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for pox_convert-1.1.0-py3-none-any.whl |
Total release size: 561.2 kB
Release files / pox_convert-1.1.0.tar.gz
| Download URL | pox_convert-1.1.0.tar.gz |
|---|---|
| Size | 538.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3403d7f379723bc28a4e964e5121d7e155099af8d253b8110de9b40ad35b6def
|
|
BLAKE2b-256 checksum How to use checksums |
7a7bb063a77b5bfb7372a05424a282ef9a01081f948fdeee745685a6877920bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pox_convert-1.1.0-py3-none-any.whl
| Download URL | pox_convert-1.1.0-py3-none-any.whl |
|---|---|
| Size | 22.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1ab2b9553fb1131c283c9e8b7cb7d3de80035bd0bb2339cd9cbb180aa264f658
|
|
BLAKE2b-256 checksum How to use checksums |
56dd8c16cbaa4e302a50f0d9150acd41861ec9fe7b1abfc2c5aa887e91e9a3f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for pox-convert 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.