Skip to content

i18n infrastructure: Babel/gettext, translation files, language switcher #23

@gregoryfoster

Description

@gregoryfoster

Summary

Implement full internationalization infrastructure after the groundwork laid in #19.

Design doc

docs/plans/2026-03-22-style-guide-design.md (deferred section)

Scope

  • Babel/gettext setup (pybabel extract, .pot/.po files)
  • _() wrapper in templates and Python route handlers
  • Jinja2 format_date / format_number filters (via babel.dates, babel.numbers)
  • Language switcher UI in topbar
  • Locale middleware (detect from Accept-Language header, fallback to en)
  • Migrate CSS to logical properties fully (started in docs: create project style guide (docs/STYLE.md) #19 for new CSS only)
  • lang/dir attributes on <html> made dynamic

Prerequisites

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions