language-integratorlisted
Install: claude install-skill conectlens/lenserfight
# Language integrator
Use this skill to add a locale in the LenserFight Nx monorepo without spreading
language rules across unrelated files or putting i18n ownership in the app shell.
## Responsibility split
- `libs/features/*/src/lib/i18n/*.ts` owns translation bundles for each feature.
- `libs/features/settings` owns the language selector in the user settings flow.
- `libs/features/onboarding` owns the initial preferred-language capture.
- `libs/features/auth` owns preferred-language persistence and session data.
- `apps/web/src/i18n.ts` composes feature locale exports and handles runtime
language detection.
- `apps/docs` is optional and only changes when docs localization is requested.
Use the same locale code everywhere. Do not invent a second translation system.
## Add a locale
1. Choose the locale code, display name, and text direction.
2. Add or update the locale bundle in the owning feature library under
`libs/features/<feature>/src/lib/i18n/` so the feature remains the
information expert for its own copy.
3. Export the locale from the feature library root.
4. Compose the new locale in `apps/web/src/i18n.ts`.
5. Update onboarding, settings, and auth language surfaces so they use the same
locale code.
6. Update docs locale config only if docs are part of the request.
## File map
| File | Purpose |
| --- | --- |
| `libs/features/<feature>/src/lib/i18n/{LOCALE}.ts` | Feature locale bundle |
| `libs/features/<feature>/src/index.ts` | Re-export feature l