[M0] Initialiser l'internationalisation gettext (po/ + .pot + meson) #314

Open
opened 2026-04-06 09:34:48 +00:00 by charles · 0 comments
Owner

Contexte

Le répertoire po/ existe mais ne contient qu'un .gitkeep. La spec 1.2 liste gettext comme composant I18n de la stack, et le meson.build doit déclarer la gestion des traductions pour que Flatpak les intègre correctement.

Sans ce setup, toute chaîne UI ajoutée dans les crates (fractal-gtk, widgets, etc.) ne sera pas traduisible.

Critères d'acceptation

  • meson.build racine configure i18n = import('i18n') et appelle i18n.gettext('fractal-plus')
  • Un fichier po/LINGUAS est créé (initialement vide ou avec fr en)
  • Un fichier po/fractal-plus.pot est généré via ninja -C build fractal-plus-pot
  • Les macros gettext!() / i18n::gettext() sont utilisables depuis les crates
  • La CI génère le .pot sans erreur

Notes techniques

  • Fractal upstream utilise déjà gettext — s'inspirer de leur po/meson.build
  • Le .pot doit être régénéré à chaque build (cible update-po)
  • Les crates Rust utilisent le crate gettextrs déjà inclus dans l'écosystème GTK Rust
## Contexte Le répertoire `po/` existe mais ne contient qu'un `.gitkeep`. La spec 1.2 liste gettext comme composant I18n de la stack, et le `meson.build` doit déclarer la gestion des traductions pour que Flatpak les intègre correctement. Sans ce setup, toute chaîne UI ajoutée dans les crates (`fractal-gtk`, widgets, etc.) ne sera pas traduisible. ## Critères d'acceptation - [ ] `meson.build` racine configure `i18n = import('i18n')` et appelle `i18n.gettext('fractal-plus')` - [ ] Un fichier `po/LINGUAS` est créé (initialement vide ou avec `fr en`) - [ ] Un fichier `po/fractal-plus.pot` est généré via `ninja -C build fractal-plus-pot` - [ ] Les macros `gettext!()` / `i18n::gettext()` sont utilisables depuis les crates - [ ] La CI génère le `.pot` sans erreur ## Notes techniques - Fractal upstream utilise déjà gettext — s'inspirer de leur `po/meson.build` - Le `.pot` doit être régénéré à chaque build (cible `update-po`) - Les crates Rust utilisent le crate `gettextrs` déjà inclus dans l'écosystème GTK Rust
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#314
No description provided.