i18n status: Applies — deferred to human pre-pilot acceptance
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.
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.