./scripts/i18n/validate.sh fails on stem main, independent of any in-flight work.
✘ 74 fallback pattern(s) t('key', 'string') — banned per I18N_CONVENTIONS
Concentrated in ui/src/components/settings/ and ui/src/components/settings/tests/, e.g.
ui/src/components/settings/ReflectorSection.tsx:62 — t('settings:reflector.title', 'Reflector Profile')
ui/src/components/settings/InterfaceSection.tsx:41 — t('settings:interface.title', 'Interface')
ui/src/components/settings/ModeSection.tsx:48 — t('settings:mode.title', 'Mode')
Fix is per I18N_CONVENTIONS: the key belongs in the locale file, not as a second argument. The inline fallback also silently masks a missing es translation — the ES user gets the English string with no gate failure.
Found while landing the Step 3.5 header convergence; the failures predate it and none touch pages.*.
./scripts/i18n/validate.shfails on stemmain, independent of any in-flight work.Concentrated in
ui/src/components/settings/andui/src/components/settings/tests/, e.g.ui/src/components/settings/ReflectorSection.tsx:62—t('settings:reflector.title', 'Reflector Profile')ui/src/components/settings/InterfaceSection.tsx:41—t('settings:interface.title', 'Interface')ui/src/components/settings/ModeSection.tsx:48—t('settings:mode.title', 'Mode')Fix is per I18N_CONVENTIONS: the key belongs in the locale file, not as a second argument. The inline fallback also silently masks a missing es translation — the ES user gets the English string with no gate failure.
Found while landing the Step 3.5 header convergence; the failures predate it and none touch
pages.*.