Skip to content

ops: prepare for internationalization without shipping translations yet #80

Description

@joelpeace48-cell

Problem

Every user-facing string is hardcoded in JSX. That is fine today, but several
relevant grant programmes and public-sector buyers operate in non-English
jurisdictions, and retrofitting internationalization across a built dashboard is
substantially more work than structuring for it now.

What to do

This is preparation, not translation — do not commission translations yet:

  • Extract user-facing strings into a message catalogue with stable keys.
  • Adopt Next.js i18n routing with English as the only active locale for now.
  • Use Intl for dates, numbers, and currency rather than hand-formatting —
    this matters immediately, because a compliance export showing 1,000.50 to a
    reader expecting 1.000,50 is a real misreading of a financial figure.
  • Avoid layouts that break when a string grows 30% longer, which German and
    Finnish reliably do.
  • Set lang correctly and keep the door open for right-to-left.

Acceptance criteria

  • Strings extracted to a catalogue with stable keys
  • i18n routing configured, English-only for now
  • All dates, numbers, and currency formatted via Intl
  • Layouts tested against significantly longer strings

Notes

The Intl formatting is worth doing regardless of whether a second language
ever ships — ambiguous number formatting in a billing product is a correctness
problem, not a localisation one.

Activity

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

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSThird CampaignCampaign: Third Campaignarea:opsSEO, analytics, CIdifficulty:hardDesign judgement required; subtle failure modespriority:lowPolish; safe to defertype:choreTooling, CI, dependencies

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions