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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions