docs: record i18n batch 4 (Lab labels, Sasquatch FAQ, fees)
This commit is contained in:
parent
7347f874ad
commit
2ac2605f57
1 changed files with 24 additions and 8 deletions
32
AGENTS.md
32
AGENTS.md
|
|
@ -1756,7 +1756,7 @@ similar are internal endpoints/hook names, not credits — leave them.)
|
|||
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-02, batches 1–3 done):** **~6,460 keys** (EN=ES) and ~230
|
||||
- **Coverage (2026-10-04, batches 1–4 done):** **~7,030 keys** (EN=ES) and ~250
|
||||
files wired. Namespaces: batch 1 — `mapUi`, `spotUi`, `marketUi`, `labUi`;
|
||||
batch 2 — `nav` (header/More/burger labels) + `chromeUi` (footer, toolbar
|
||||
widgets, spot-type labels), `placesUi` (events/shops/tours/food), `socialUi`
|
||||
|
|
@ -1793,13 +1793,29 @@ similar are internal endpoints/hook names, not credits — leave them.)
|
|||
first paint is in-language. **Import from `@/lib/dateFnsI18n`, not
|
||||
`date-fns`.** Number `.toLocaleString()` calls are deliberately left on the
|
||||
runtime default.
|
||||
- **Still to translate (batch 4):** the **Lab `*_LABELS`/`*_DESCRIPTIONS` maps**
|
||||
in `src/lib/types.ts` (coach/filmer/editor/photo/builder/artist/graffiti/tattoo/
|
||||
trainer/musician/judge/organizer/barber — ~35 maps), `TOUR_SKILL_LEVELS`, the
|
||||
Sasquatch **static FAQ / local-result chat bodies** and `usePurchasePro` receipt
|
||||
prose, and remaining **feed-supplied vs app-word** distinctions. `TagCategory`
|
||||
names/descriptions have keys but no component renders them. Grep a module
|
||||
before assuming it is translated.
|
||||
- **Batch 4 (2026-10-04) — done.** Fragment layer `src/i18n/batch4/`
|
||||
(spread as `batch4En`/`batch4Es` alongside batch 3).
|
||||
- `labOptions.*` (430 keys) — every Lab `*_LABELS`/`*_DESCRIPTIONS` map in
|
||||
`src/lib/types.ts` (coach/filmer/editor/photo/builder/artist/graffiti/tattoo/
|
||||
trainer/musician/judge/organizer/barber) + `TOUR_SKILL_LEVELS`; **51 shared
|
||||
key maps appended to `src/lib/labelKeys.ts`**. Consumers: `becomeRoles.tsx`,
|
||||
`CraftProfileForm` (`SkillSection` gained a `keyMap`), `LabPage`,
|
||||
`CoachDetailPage`, the five bespoke `/become/*` pages, `TourCard`/
|
||||
`TourDetailPage`/`CreateTourPage`/`EventsPage`. Trick names and tool/brand
|
||||
nouns intentionally stay English.
|
||||
- `sasquatchChat.*` (83 keys) — the free-tier `STATIC_FAQ` (English matcher →
|
||||
`sasquatchChat.faq.*` key) and local-result/fallback chat bodies. Live AI is
|
||||
already language-directed; **prompts stay English**.
|
||||
- `feesUi.*` (57 keys) — `usePurchasePro` receipt prose/errors and
|
||||
`PlatformFeePayment` fee/duration tiers (`LabProUpgrade`/`FeaturedEventUpgrade`
|
||||
were already `labUi`/`placesUi`).
|
||||
- ✅ **Not translated, deliberately:** LLM system/synthesis prompts and
|
||||
tool-result instruction strings (model-facing), feed-supplied data (line
|
||||
names, headsigns, roads, stops, weather condition labels, operator names),
|
||||
brand/proper nouns, and the separate `src/lib/glossary.ts` trick glossary.
|
||||
`TagCategory` names/descriptions and `MUSICIAN_ACT_LABELS` have keys but no
|
||||
rendering consumer. Number `.toLocaleString()` stays on the runtime default.
|
||||
Grep a module before assuming it is untranslated.
|
||||
- ⚠️ A batch-2 agent dropped the `socialUi.` namespace prefix in ~36 files — the
|
||||
`check:i18n` guard caught all 738 usages. **Always run `node scripts/check-i18n.mjs`
|
||||
(it's in `npm test`) after wiring a file.**
|
||||
|
|
|
|||
Loading…
Reference in a new issue