Toolbox to manage localized messages with json and gettext functions.
Project description
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 — DD-06 boundary sealed, Config → Repository completed |
✅ Delivered |
| v0.6.x | CI/CD & repository hygiene — uv/tox-uv, basedpyright, .codecov.yml |
🔶 In progress |
| v0.7.x | Test coverage — ≥ 80% enforced across the package | 🔵 Planned |
| v0.8.0 | Orchestration — core.py high-level entry point, fallback.py language chain resolution |
🔵 Planned |
| v0.9.0 | Formatting & CLI — formatter.py complete with PluralRule, CLI/REPL |
🔵 Planned |
| v0.10.0 | Module architecture and main object components review | 🔵 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.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 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Interpolation and active plural rules | ❌ | ✅ | ✅ | ✅ | ✅ |
| CLI/REPL interface | ❌ | ✅ | ✅ | ✅ | ✅ |
.po/.mo import/export (Babel/gettext) |
❌ | ❌ | ❌ | ✅ | ✅ |
| i18next conversion | ❌ | ❌ | ❌ | ❌ | ✅ |
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyi18t_tools-0.6.0.tar.gz.
File metadata
- Download URL: pyi18t_tools-0.6.0.tar.gz
- Upload date:
- Size: 74.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
424df5c38dbc42fea961e542aec570cf365915c1191be1233b51bbcc3f5a4cf2
|
|
| MD5 |
e69cc5e383fdfab53b463154d3de37a3
|
|
| BLAKE2b-256 |
9c85f78dc59b88fc849e43208d6f3b89cc166b0023bab6d87b419dc8c89e25cd
|
File details
Details for the file pyi18t_tools-0.6.0-py3-none-any.whl.
File metadata
- Download URL: pyi18t_tools-0.6.0-py3-none-any.whl
- Upload date:
- Size: 83.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b52e5fa0c3f5f7a7aaa2318e1bda03d6e1db7734e77a666583a2f93e19229e5
|
|
| MD5 |
b2b013bcb28acad70dfd3ee7734916d7
|
|
| BLAKE2b-256 |
91a66846965321c3eb153e412b1fd6f90030859b2a24f9e5a03e24b35f296637
|