i18n-tools
Version française (lecteur français et francophones)
English reader and ROW
Description
The i18n-tools project aims to simplify and modernize translation management in Python applications. It introduces a new flexible translation file format, independent of any dominant language, designed to coexist with existing standards such as gettext (.po/.mo files) and i18next.
The goal is to provide a modular, adaptable, and language-agnostic solution, with native support for translation variants, multiple plurals, and transparent language fallback management.
Roadmap
The project follows a progression by deliverable value. Each version is independently usable.
| Milestone | Description | Status |
|---|---|---|
| v0.1.x | Foundational cleanup — fix blocking bugs | ✅ Delivered |
| v0.2.x | Loaders ↔ models bridge — Book.load(), .i18t extension, partial Config → Repository |
✅ Delivered |
| v0.3.x | Complete model hierarchy — Corpus, FallbackBook, Encyclopaedia, exceptions |
✅ Delivered |
| v0.4.x | Quality and coverage — error handling, circular imports, Sphinx/Furo init | ✅ Delivered |
| v0.5.0 | Architecture & layering hardening — models/loaders boundary sealed, Config → Repository completed |
✅ Delivered |
| v0.6.0 | CI/CD & repository hygiene — uv/tox-uv, basedpyright, .codecov.yml |
✅ Delivered |
| v0.7.0 | Test coverage & repository hygiene — .codecov.yml components, coverage-gate, issue/PR templates, Node.js 24 CI migration. No separate tag — merged into v0.8.0 (calendar reagencement) |
✅ Delivered |
| v0.8.0 | Orchestration — core.py high-level entry point, fallback.py language chain resolution |
✅ Delivered |
| v0.9.0 | Formatting & CLI — formatter.py complete with PluralRule, CLI/REPL |
✅ Delivered |
| v0.10.0 | Reviewing architecture & models — architectural review ahead of the v1.0.0 freeze | 🔵 Planned |
| v0.11.0 | Comprehensive documentation — reference material across languages | 🔵 Planned |
| v1.0.0 | Freeze & verification — .i18t format frozen, public API frozen, full Sphinx docs published |
🔵 Planned |
| v1.x | gettext interoperability — .po/.mo import/export via Babel |
🔵 Horizon |
| v2.x | Third-party formats — i18next and others, central conversion hub | 🔵 Horizon |
| v3.x | Complete CLI, stable API, Rust/JavaScript ports | 🔵 Horizon |
Features
| Feature | v0.2.x | v0.8.0 | v0.9.0 | v1.0.0 | v1.x | v2.x |
|---|---|---|---|---|---|---|
Native .i18t format (JSON/YAML) |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Language-neutral identifiers | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Variants and multiple plurals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Load a Book from .i18t |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Save a Book to .i18t |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Complete hierarchy (Corpus, Encyclopaedia) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Language fallback management | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
High-level orchestration (core.py: load/save a Book or Corpus, synchronize a repository) |
❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Interpolation and active plural rules | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
| CLI/REPL interface | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
.po/.mo import/export (Babel/gettext) |
❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| i18next conversion | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
Installation
pip install pyi18t-tools
This installs everything needed to load, format, and save .i18t files:
Message, Book, Corpus, Encyclopaedia, formatter.publish(), and
the CLI (validate/info/sync/repl) with a .yaml/.json settings
file.
Author and translator management (Config/Repository author/translator
methods, translator API URL validation, or a .toml settings file)
additionally requires the api extra:
pip install pyi18t-tools[api]
Calling one of these methods without the extra installed raises a clear
ModuleNotFoundError naming the missing package and this install command,
rather than a bare import failure (DD-41).
Why This Project?
- Flexibility: a format designed to adapt to all translation needs, without linguistic constraints — no language is dominant.
- Expressiveness: native support for contextual variants (gender, register, context) and business plurals beyond CLDR rules.
- Extensibility: layered architecture enabling conversion to existing standards (gettext, i18next) without modifying the models.
- Interoperability: bridge with the Babel ecosystem for progressive compatibility with existing tools.
License
See the license.md file.
Contact
For any questions or contributions, open a GitHub issue.
Metadata
Release files for pyi18t-tools 0.10.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 |
|---|---|---|---|---|
| pyi18t_tools-0.10.0.tar.gz | 90.6 kB | Without provenance | Details for pyi18t_tools-0.10.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyi18t_tools-0.10.0-py3-none-any.whl | Python 3 | none | any | Details for pyi18t_tools-0.10.0-py3-none-any.whl |
Total release size: 190.7 kB
Release files / pyi18t_tools-0.10.0.tar.gz
| Download URL | pyi18t_tools-0.10.0.tar.gz |
|---|---|
| Size | 90.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
027ffc00ba48a689b865edfc814b8ef2684ddf732449e0f336543215d30cde3c
|
|
BLAKE2b-256 checksum How to use checksums |
475e3ebb679cfa9b7b805f0652a0c852ab007e0882e86212257c4a824261cb5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pyi18t_tools-0.10.0-py3-none-any.whl
| Download URL | pyi18t_tools-0.10.0-py3-none-any.whl |
|---|---|
| Size | 100.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0eae1b49a3808dad96a0a9c5e8cc731011c2c807f9e2e6c8f35d5df33f305c7a
|
|
BLAKE2b-256 checksum How to use checksums |
33eb9f5f9ef8cac36ce6e2c7caacb5755b2d295e793f0f0e7b3cef6a4017d573
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for pyi18t-tools 0.10.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.