$npx -y skills add CommonstackAI/ClawBox --skill clawbox-ui-i18nUse when changing ClawBox React components, dialogs, settings pages, sidebar flows, or any user-facing copy that must stay aligned with react-i18next and the project's bilingual locale files.
| 1 | # ClawBox UI i18n |
| 2 | |
| 3 | Use this skill for ClawBox frontend UI work, copy changes, settings screens, onboarding screens, dialogs, and general React component changes. |
| 4 | |
| 5 | ## Read first |
| 6 | |
| 7 | - The target component under `src/components/` |
| 8 | - Any matching Zustand store under `src/store/` |
| 9 | - `src/services/api.ts` if the component loads or mutates backend data |
| 10 | - `src/locales/en/translation.json` |
| 11 | - `src/locales/zh/translation.json` |
| 12 | |
| 13 | ## Workflow |
| 14 | |
| 15 | 1. Add or update translation keys before wiring UI text. |
| 16 | 2. Keep translation keys nested by feature instead of flattening unrelated labels into generic buckets. |
| 17 | 3. Prefer existing store actions and selectors over adding duplicate component-local copies of remote state. |
| 18 | 4. If a component opens dialogs or renders chat blocks, inspect the sibling components in the same feature folder before changing layout or behavior. |
| 19 | |
| 20 | ## Verification |
| 21 | |
| 22 | - Update both locale files in the same diff. |
| 23 | - Run `npm run build:frontend`. |
| 24 | |
| 25 | ## Guardrails |
| 26 | |
| 27 | - Do not leave hard-coded user-facing strings in JSX. |
| 28 | - Preserve existing Radix UI and Tailwind patterns unless the task explicitly redesigns the feature. |
| 29 | - Keep frontend API usage centralized in service modules where possible. |