Skip to content

Latest commit

 

History

History
53 lines (43 loc) · 2.68 KB

File metadata and controls

53 lines (43 loc) · 2.68 KB

Internationalization

i18n status: Applies — deferred to human pre-pilot acceptance

Why

Permit Bearings is a public-facing California civic prototype and already ships English and Spanish interface copy plus Spanish machine-draft explanations. Internationalization therefore cannot be declared N/A.

The current implementation uses a bounded JavaScript copy dictionary and versioned JSON explanation sidecars. A strict repository check now validates the dictionary's English/Spanish key order, nested value shapes, stable option identifiers, formatter arity, static and formatter placeholders, nonblank singular/plural outputs, and a copy-leaf pseudo-expansion transform. It does not generate a runnable pseudolocale catalog, use a standards-backed, externalized catalog workflow, or render expanded copy in browser layout tests. Canonical source excerpts, pathway labels, document hints, the ordinance screen, and evidence tools remain partly or wholly English.

Run node scripts/check_applicant_copy.mjs directly, or use make verify. The machine-readable --json result keeps semantic translation review, Spanish applicant readiness, and rendered layout compatibility explicitly not_evaluated or not_claimed. The check catches structural regressions; it cannot judge meaning, legal fidelity, readability, pronunciation, or whether mixed-language boundaries are understandable.

Acceptance target

Before a pilot presents the Spanish surface as applicant-ready:

  • externalize all applicant-facing strings into a single catalog boundary;
  • keep the implemented English/Spanish key, shape, identifier, formatter, and placeholder contract passing;
  • generate and render a complete pseudolocale catalog in layout tests, and add mixed-language acceptance tests;
  • record a named human semantic-parity review of source-derived guidance; and
  • keep machine drafts visibly review-pending until that review exists.

The optional runtime AI panel (ADR 0004) keeps its interface strings in the same STRINGS catalog under ai, so the structural contract covers them. Its model output is requested in the interface language, but quoted source passages stay in the language of the source (English), and no human has reviewed the Spanish prompts, extractions, explanations, or drafted questions; the 15 Spanish intake cases in evals/ai/ measure extraction only.

The exact current language boundary remains documented in docs/ACCESSIBILITY.md and docs/PRODUCT-CONTEXT.md. The rule-by-rule semantic-parity evidence requirements are defined in docs/MANUAL-VALIDATION.md and tracked in data/validation/woodland-manual-evidence.json; no row or Spanish explanation is represented as reviewed merely because that ledger exists.