Summary
Found while writing the copy assertions for #759. ReflectorPage calls t()
for its buttons and status words, but most of what an operator actually reads on
it is hardcoded English. Rendering the page in es and dumping its text:
All clear · Reflector is idle · Pick an interface and start the reflector for a
test master to measure against. · Received · Sent · Rate · Select network
interface · Show all interfaces · Start Reflector · Packets Received · Packets
Sent · Current Rate · Uptime · Status: idle
Every one of those is English under es.
Why the gate passes anyway
check-source.py reads JSX text nodes. These strings are not text nodes —
they are title=/aria-label=/placeholder= attributes, object-literal labels,
and arguments to helper calls. The detector's limits are documented as
false-negatives-only, and this is what that costs in practice on one page.
validate.sh reports clean on this repo today, so nothing flags it.
Scope
This is a page-sized change: extract ~15 strings into pages:reflector.*,
translate them, and add the bilingual assertions that #759's tests establish the
pattern for. Deliberately not folded into #778 — that PR fixes three defects it
found and stays reviewable.
Worth pairing with a decision about whether the hardcoded-text detector should
learn attribute copy, which would surface this class fleet-wide rather than one
page at a time.
Summary
Found while writing the copy assertions for #759.
ReflectorPagecallst()for its buttons and status words, but most of what an operator actually reads on
it is hardcoded English. Rendering the page in
esand dumping its text:Every one of those is English under
es.Why the gate passes anyway
check-source.pyreads JSX text nodes. These strings are not text nodes —they are
title=/aria-label=/placeholder=attributes, object-literal labels,and arguments to helper calls. The detector's limits are documented as
false-negatives-only, and this is what that costs in practice on one page.
validate.shreports clean on this repo today, so nothing flags it.Scope
This is a page-sized change: extract ~15 strings into
pages:reflector.*,translate them, and add the bilingual assertions that #759's tests establish the
pattern for. Deliberately not folded into #778 — that PR fixes three defects it
found and stays reviewable.
Worth pairing with a decision about whether the hardcoded-text detector should
learn attribute copy, which would surface this class fleet-wide rather than one
page at a time.