Skip to content

Render the offline report in Spanish behind the portfolio's EN/ES catalog gates #135

Description

@ChelseaKR

What

exitdrill report receipt.json --lang es --out informe.html renders the offline HTML report in Spanish from a reviewed gettext catalog, with English as the default and the fallback; the result-state names, dimension questions, and every fixed limitation sentence are message IDs whose Spanish text is human-reviewed and pinned byte-for-byte, and a report with any untranslated cover string renders the English string and marks the page "partially translated" rather than dropping the sentence. explain (proposed separately) would share the catalog.

Why it matters

docs/I18N.md declares N/A on the grounds that the report is operator evidence, not a public interface — but the report is precisely the artifact an operator hands to a director, a board, or a funder, and civic organisations in this portfolio's audience include Spanish-speaking ones. This proposal deliberately reopens that declaration, as the declaration itself says it should when a delivery commitment to a bilingual audience appears. The constraint is the project's usual one: the limitation texts are load-bearing claims, so they are never machine-translated silently, and the report-content tests must assert the claims in whichever language rendered. Inside the freeze: strings only, no new evidence or contract.

Scope

  • Wrap the report's reader-facing strings in a lookup; extraction template committed; --lang flag; catalog under src/exitdrill/locales/.
  • The disclosure and offline/script-free gates run in both languages; a key-parity gate fails on a missing cover key.
  • docs/I18N.md updated to "Applies: report surface only", with reviewer and date.

Out of scope

  • CLI output, JSON documents, docs, or the canary READMEs; locales beyond es.

Done when

  • --lang es on the demo receipt yields a page whose every limitation sentence matches the reviewed catalog exactly, and the English page is byte-identical to today's.
  • A catalog missing one non-cover key renders the English fallback plus the marker; a missing cover key fails the build.
  • The Spanish page passes the same no-script, no-subresource, and no-record-value assertions.
  • --lang xx is a usage error listing the available locales.

Pointers

  • src/exitdrill/report.py, tests/test_report.py, tests/test_disclosure.py, docs/I18N.md
  • Portfolio i18n direction (EN/ES) as adopted in sibling repos such as family-greenhouse

Proposed with AI assistance.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeatureMajor new capability proposal

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions