docs(i18n): record batch-1 coverage + checker, list remaining areas

This commit is contained in:
SkateSpots 2026-10-01 23:58:13 +07:00
parent 09735375c2
commit c205ad34f0

View file

@ -1638,10 +1638,20 @@ similar are internal endpoints/hook names, not credits — leave them.)
drift silent otherwise.
- **User-generated content is never translated** (spot / listing / DM / crew text
is whatever the author wrote).
- ⚠️ Coverage is **partial**: the framework + ~33 namespaces exist, but most files
are not yet wired to `t()`. Continue extracting area by area (Map/spots →
Marketplace/trades → Lab/crews → Settings/legal). Untranslated text falls back
to English, so it degrades gracefully.
- **Safety net:** `scripts/check-i18n.mjs` (wired into `npm test` as part of the
chain) fails the build if any literal `t('…')` key is missing from `en` OR `es`,
or if `en`/`es` drift. Dynamic template keys (`t(\`ns.${x}\`)`) are NOT checked —
keep those few in sync by hand.
- **Coverage (2026-10-01, batch 1 done):** ~1,680 new keys (2,297 total) and ~65
files wired — **Map (`mapUi`)**, **spots (`spotUi`)** incl. detail/create/edit/
chat, **Marketplace/trades/offers/escrow/shipping (`marketUi`)**, and **Lab/
`/become/*`/coaches/skaters (`labUi`)**. **Still to do (batch 2+):** Settings,
auth (LoginArea/dialogs), Onboarding, Events, Shops, Tours, Crews, DMs/group,
Stash, Newsletter, Community Stats, legal (About/FAQ/Privacy/License/Glossary),
Wallet/Mints, App Shop, Food, Bounties/leaderboards, Admin review. Untranslated
text falls back to English, so partial coverage degrades gracefully.
- ⚠️ **When wiring a file, keep `en.ts`/`es.ts` key-for-key in sync** and run
`node scripts/check-i18n.mjs` before committing.
## Nostr Protocol Integration