fix(i18n): four review findings on PR #10
1. npm test scripts: replace quoted-glob args (which tsx received literally and didn't expand on bash 3.2) with a Node-based test discovery script per repo. Both `npm test --prefix frontend` and `npm test --prefix backend` now run the suites correctly. 2. Validator now rejects duplicate top-level JSON keys via a state-machine raw-text scan (findDuplicateTopLevelKeys), restoring the contract promised in spec rule 4. JSON.parse silently dedupes; this catches editor mistakes before runtime sees the deduped catalog. 3. Signup persists the active i18n locale alongside name/organisation so a guest who selected pt/es/fr/de doesn't get snapped back to en when ProfileLocaleSync applies the (default 'en') profile after signup. 4. Client setLocale now syncs document.documentElement.lang via useEffect on locale change. SSR sets it once; the effect keeps it in sync after user-driven switches. Tests: frontend 55/55 (added 9 in findDuplicateTopLevelKeys.test.ts), backend 34/34. Both `npm test` and `npm run lint:catalogs` runnable without manual glob expansion.
| Repository | manueljpconde/mikeEU |
|---|---|
| Author | Manuel Conde <manuel.jpc@gmail.com> |
| Authored | |
| Parents | 346b8197 |
| Stats | 9 files changed , +298 , -15 |
| Part of | i18n: localization for en/pt/es/fr/de |
Capture this commit into my fork
Download a Markdown prompt that tells Claude how to port this
exact commit into your working tree. Run it via
claude -p < capture-commit-cb6b9a2f.md
from inside the repo you want the change in.