Skip to content

Add i18n infrastructure and pilot Italian translation slice - #594

Merged
bpepple merged 3 commits into
masterfrom
translations
Aug 13, 2026
Merged

Add i18n infrastructure and pilot Italian translation slice#594
bpepple merged 3 commits into
masterfrom
translations

Conversation

@bpepple

@bpepple bpepple commented Aug 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Lay the i18n groundwork: LANGUAGES/LOCALE_PATHS settings, LocaleMiddleware, the i18n template context processor, a set_language URL, and a cookie-based language switcher in the navbar
  • Mark up a representative pilot slice for translation — base.html, the navbar/footer/messages partials, and the Issue model/form/view — and generate a translated Italian catalog to prove the pipeline end-to-end
  • Wire catalog compilation into the Containerfile build and CI, so .po stays the only committed artifact and .mo is always built fresh

This is a deliberately scoped first slice, not a full sweep — see #593 for the phased rollout plan covering the rest of the app.

…switcher

Lay the groundwork for translating Metron (#593): LANGUAGES/LOCALE_PATHS settings, LocaleMiddleware, the i18n template context processor, the set_language URL, and a cookie-based language switcher in the navbar. No user-facing strings are marked up for translation yet.
Wrap user-facing strings in base.html, the navbar/footer/messages partials, and the Issue model/form/view in gettext calls, converting view messages from f-strings to %-style formatting so they stay translatable. Generate and translate the pilot Italian catalog, and wire catalog compilation into the Containerfile build and CI.

This proves the translation pipeline end-to-end on a representative slice before rolling it out to the rest of the app in batches.
@bpepple bpepple self-assigned this Aug 13, 2026
@bpepple bpepple added the enhancement New feature or request label Aug 13, 2026
GitHub Actions runners and the python:3.14-slim base image don't ship GNU gettext tools by default, which compilemessages needs, causing
CI to fail with "Can't find msgfmt". Install it before compiling, and remove it again after the Containerfile build step to keep the runtime image slim.
@bpepple
bpepple merged commit 3d1497d into master Aug 13, 2026
2 checks passed
@bpepple
bpepple deleted the translations branch August 13, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant