i18nlisted
Install: claude install-skill helderberto/agent-skills
# i18n Audit
## Detection
Read `package.json` for i18n library:
- `react-i18next` / `i18next`
- `next-intl`
- `vue-i18n`
- `react-intl` (FormatJS)
Read locale files to understand key structure (e.g. `src/locales/en.json`).
## Workflow
1. Detect i18n library and locale file locations
2. Search JSX/TSX/Vue files for hardcoded user-facing strings:
- String literals in JSX: `<p>Hello world</p>`
- String props: `placeholder="Search..."`, `label="Submit"`
- `aria-label="Close menu"`
3. Compare locale files — find missing keys between locales
4. Report findings
## Output format
**Hardcoded strings** (`file:line`):
```
src/components/Header.tsx:12 "Welcome back" → suggest key: header.welcomeBack
src/components/Form.tsx:34 placeholder="Search..." → suggest key: form.searchPlaceholder
```
**Missing translations** (key present in base locale but absent in others):
```
Key: dashboard.emptyState missing in: pt-BR, es
Key: errors.networkTimeout missing in: pt-BR
```
## Rules
- Only flag user-visible strings (skip internal IDs, CSS classes, URLs, enum values)
- Suggest translation key names in camelCase matching project convention
- Never auto-modify locale files — report only
## Error Handling
- If no i18n library detected → report project may not use i18n; still list any hardcoded strings found
- If no locale files found → skip missing-key comparison; only report hardcoded strings
- If locale files are not JSON (e.g. `.po`, `.yaml`) → read them anyway and adap