Skip to main content

Python - Language Python - Status Python - Licence Python - Supported Versions Read the Docs Github - CI Codecov Github - Release PyPI - Version


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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyi18t_tools-0.10.0.tar.gz (90.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyi18t_tools-0.10.0-py3-none-any.whl (100.1 kB view details)

Uploaded Python 3

File details

Details for the file pyi18t_tools-0.10.0.tar.gz.

File metadata

  • Download URL: pyi18t_tools-0.10.0.tar.gz
  • Upload date:
  • Size: 90.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyi18t_tools-0.10.0.tar.gz
Algorithm Hash digest
SHA256 027ffc00ba48a689b865edfc814b8ef2684ddf732449e0f336543215d30cde3c
MD5 60d1f7d4a8a9152208dad608ab7a0040
BLAKE2b-256 475e3ebb679cfa9b7b805f0652a0c852ab007e0882e86212257c4a824261cb5f

See more details on using hashes here.

File details

Details for the file pyi18t_tools-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: pyi18t_tools-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 100.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyi18t_tools-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0eae1b49a3808dad96a0a9c5e8cc731011c2c807f9e2e6c8f35d5df33f305c7a
MD5 d1aae33c90b8fc64daf4307b3be82061
BLAKE2b-256 33eb9f5f9ef8cac36ce6e2c7caacb5755b2d295e793f0f0e7b3cef6a4017d573

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 files

0.9.0

2 files

0.8.0

2 files

0.6.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page