Skip to main content

Toolbox to manage localized messages with json and gettext functions.

Project description

Python Codecov


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


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.6.0.tar.gz (74.4 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.6.0-py3-none-any.whl (83.9 kB view details)

Uploaded Python 3

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

Hashes for pyi18t_tools-0.6.0.tar.gz
Algorithm Hash digest
SHA256 424df5c38dbc42fea961e542aec570cf365915c1191be1233b51bbcc3f5a4cf2
MD5 e69cc5e383fdfab53b463154d3de37a3
BLAKE2b-256 9c85f78dc59b88fc849e43208d6f3b89cc166b0023bab6d87b419dc8c89e25cd

See more details on using hashes here.

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

Hashes for pyi18t_tools-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b52e5fa0c3f5f7a7aaa2318e1bda03d6e1db7734e77a666583a2f93e19229e5
MD5 b2b013bcb28acad70dfd3ee7734916d7
BLAKE2b-256 91a66846965321c3eb153e412b1fd6f90030859b2a24f9e5a03e24b35f296637

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page