{"id":35292006,"url":"https://github.com/biface/i18n","last_synced_at":"2026-05-16T23:35:15.811Z","repository":{"id":315779312,"uuid":"910877514","full_name":"biface/i18n","owner":"biface","description":"Toolbox to manage and extend localized messages","archived":false,"fork":false,"pushed_at":"2026-04-26T12:51:40.000Z","size":536,"stargazers_count":0,"open_issues_count":32,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-26T14:08:22.891Z","etag":null,"topics":["i18n","i18next","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/biface.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-01T17:50:20.000Z","updated_at":"2026-04-26T12:51:39.000Z","dependencies_parsed_at":"2025-09-21T04:30:22.351Z","dependency_job_id":null,"html_url":"https://github.com/biface/i18n","commit_stats":null,"previous_names":["biface/i18n"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/biface/i18n","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biface%2Fi18n","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biface%2Fi18n/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biface%2Fi18n/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biface%2Fi18n/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/biface","download_url":"https://codeload.github.com/biface/i18n/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biface%2Fi18n/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33122154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["i18n","i18next","python3"],"created_at":"2025-12-30T16:07:49.818Z","updated_at":"2026-05-16T23:35:15.806Z","avatar_url":"https://github.com/biface.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Python](https://img.shields.io/badge/Language-python-green.svg)\n![Codecov](https://img.shields.io/codecov/c/github/biface/i18n)\n\n--------------\n# i18n-tools\n\n**[English version](#english-reader-and-row)** (for English readers and ROW)\n\n---\n\n## Lecteur français et francophones\n\n### Description\n\nLe projet **i18n-tools** vise à simplifier et moderniser la gestion des traductions dans les applications Python. Il introduit un **nouveau format de fichiers de traduction** flexible, indépendant de toute langue dominante, et conçu pour coexister avec les standards existants comme **gettext** (fichiers `.po`/`.mo`) et **i18next**.\n\nL'objectif est d'offrir une solution **modulaire**, **adaptable** et **sans contrainte linguistique**, avec un support natif pour les **variantes de traduction**, les **pluriels multiples**, et une gestion transparente des langues et des replis.\n\n---\n\n### Roadmap\n\nLe projet suit une progression par valeur livrée. Chaque version est indépendamment utilisable.\n\n| Jalon      | Description                                                                                     | État        |\n|------------|-------------------------------------------------------------------------------------------------|-------------|\n| **v0.1.x** | Stabilisation — corrections des bugs bloquants (B-01 à B-05)                                    | ✅ Livré     |\n| **v0.2.x** | Pont loaders ↔ modèles — `Book.load()`, extension `.i18t`, pont `Config → Repository` (partiel) | ✅ Livré     |\n| **v0.3.x** | Hiérarchie modèles complète — `Corpus`, `FallbackBook`, `Encyclopaedia`, exceptions             | 🔵 Planifié |\n| **v0.4.x** | Qualité et couverture — harmonisation des erreurs, couverture ≥ 80 %, documentation Sphinx      | 🔵 Planifié |\n| **v1.0.0** | i18n-tools natif complet — `core.py`, `fallback.py`, `formatter.py`, CLI, format `.i18t` gelé   | 🔵 Planifié |\n| **v1.x**   | Interopérabilité gettext — import/export `.po`/`.mo` via Babel                                  | 🔵 Horizon  |\n| **v2.x**   | Formats tiers — i18next et autres, hub de conversion central                                    | 🔵 Horizon  |\n| **v3.x**   | CLI complet, API stable, ports Rust/JavaScript                                                  | 🔵 Horizon  |\n\n---\n\n### Fonctionnalités\n\n| Fonctionnalité                              | v0.2.x    | v1.0.0 | v1.x | v2.x |\n|---------------------------------------------|-----------|--------|------|------|\n| Format `.i18t` natif (JSON/YAML)            | ✅         | ✅      | ✅    | ✅    |\n| Identifiants indépendants de la langue      | ✅         | ✅      | ✅    | ✅    |\n| Variantes et pluriels multiples             | ✅         | ✅      | ✅    | ✅    |\n| Chargement d'un `Book` depuis `.i18t`       | ✅         | ✅      | ✅    | ✅    |\n| Sauvegarde d'un `Book` vers `.i18t`         | 🔵 v0.3.x | ✅      | ✅    | ✅    |\n| Hiérarchie complète (Corpus, Encyclopaedia) | 🔵 v0.3.x | ✅      | ✅    | ✅    |\n| Gestion des replis linguistiques            | 🔵 v0.3.x | ✅      | ✅    | ✅    |\n| Interpolation et règles de pluriel actives  | ❌         | ✅      | ✅    | ✅    |\n| Interface CLI/REPL                          | ❌         | ✅      | ✅    | ✅    |\n| Import/export `.po`/`.mo` (Babel/gettext)   | ❌         | ❌      | ✅    | ✅    |\n| Conversion vers i18next                     | ❌         | ❌      | ❌    | ✅    |\n\n---\n\n### Pourquoi ce projet ?\n\n- **Flexibilité** : un format conçu pour s'adapter à tous les besoins de traduction, sans contrainte linguistique — aucune langue n'est dominante.\n- **Expressivité** : support natif des variantes contextuelles (genre, registre, contexte) et des pluriels métier au-delà des règles CLDR.\n- **Extensibilité** : architecture en couches permettant une conversion vers les standards existants (gettext, i18next) sans modifier les modèles.\n- **Interopérabilité** : pont avec l'écosystème Babel pour une compatibilité progressive avec les outils existants.\n\n---\n\n### Licence\n\nVoir le fichier [LICENSE.md](LICENSE.md).\n\n---\n\n### Contact\n\nPour toute question ou contribution, ouvrez une [issue GitHub](https://github.com/biface/i18n/issues).\n\n---\n\n---\n\n## English reader and ROW\n\n### Description\n\nThe **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**.\n\nThe goal is to provide a **modular**, **adaptable**, and **language-agnostic** solution, with native support for **translation variants**, **multiple plurals**, and transparent language fallback management.\n\n---\n\n### Roadmap\n\nThe project follows a progression by deliverable value. Each version is independently usable.\n\n| Milestone  | Description                                                                                   | Status      |\n|------------|-----------------------------------------------------------------------------------------------|-------------|\n| **v0.1.x** | Stabilisation — fix blocking bugs (B-01 to B-05)                                              | ✅ Delivered |\n| **v0.2.x** | Loaders ↔ models bridge — `Book.load()`, `.i18t` extension, partial `Config → Repository`     | ✅ Delivered |\n| **v0.3.x** | Complete model hierarchy — `Corpus`, `FallbackBook`, `Encyclopaedia`, exceptions              | 🔵 Planned  |\n| **v0.4.x** | Quality and coverage — error handling, ≥ 80% coverage, Sphinx documentation                   | 🔵 Planned  |\n| **v1.0.0** | Full native i18n-tools — `core.py`, `fallback.py`, `formatter.py`, CLI, `.i18t` format frozen | 🔵 Planned  |\n| **v1.x**   | gettext interoperability — `.po`/`.mo` import/export via Babel                                | 🔵 Horizon  |\n| **v2.x**   | Third-party formats — i18next and others, central conversion hub                              | 🔵 Horizon  |\n| **v3.x**   | Complete CLI, stable API, Rust/JavaScript ports                                               | 🔵 Horizon  |\n\n---\n\n### Features\n\n| Feature                                     | v0.2.x    | v1.0.0 | v1.x | v2.x |\n|---------------------------------------------|-----------|--------|------|------|\n| Native `.i18t` format (JSON/YAML)           | ✅         | ✅      | ✅    | ✅    |\n| Language-neutral identifiers                | ✅         | ✅      | ✅    | ✅    |\n| Variants and multiple plurals               | ✅         | ✅      | ✅    | ✅    |\n| Load a `Book` from `.i18t`                  | ✅         | ✅      | ✅    | ✅    |\n| Save a `Book` to `.i18t`                    | 🔵 v0.3.x | ✅      | ✅    | ✅    |\n| Complete hierarchy (Corpus, Encyclopaedia)  | 🔵 v0.3.x | ✅      | ✅    | ✅    |\n| Language fallback management                | 🔵 v0.3.x | ✅      | ✅    | ✅    |\n| Interpolation and active plural rules       | ❌         | ✅      | ✅    | ✅    |\n| CLI/REPL interface                          | ❌         | ✅      | ✅    | ✅    |\n| `.po`/`.mo` import/export (Babel/gettext)   | ❌         | ❌      | ✅    | ✅    |\n| i18next conversion                          | ❌         | ❌      | ❌    | ✅    |\n\n---\n\n### Why This Project?\n\n- **Flexibility**: a format designed to adapt to all translation needs, without linguistic constraints — no language is dominant.\n- **Expressiveness**: native support for contextual variants (gender, register, context) and business plurals beyond CLDR rules.\n- **Extensibility**: layered architecture enabling conversion to existing standards (gettext, i18next) without modifying the models.\n- **Interoperability**: bridge with the Babel ecosystem for progressive compatibility with existing tools.\n\n---\n\n### License\n\nSee the [LICENSE.md](LICENSE.md) file.\n\n---\n\n### Contact\n\nFor any questions or contributions, open a [GitHub issue](https://github.com/biface/i18n/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiface%2Fi18n","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbiface%2Fi18n","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiface%2Fi18n/lists"}