apps-language-ruleslisted
Install: claude install-skill conectlens/lenserfight
# Apps Language Rules
## Use when
- Adding new UI strings to `apps/web` (must add to `en.json` + `tr.json` stubs)
- Writing new documentation pages (English first; Turkish stub in `docs/tr/` recommended)
- Adding a new locale beyond `en`/`tr`
- Checking consistency of translations across JSON catalogs
- Setting up `hreflang` SEO for multilingual pages
- Reviewing React components for hardcoded strings that bypass i18next
## Supported languages
| Code | Name | Default? | App locale files | Docs status |
|------|------|----------|-----------------|-------------|
| `en` | English | ✅ Yes | `en.json` | Complete |
| `tr` | Türkçe | No | `tr.json` | WIP |
| `es` | Español | No | not yet | Stub |
| `fr` | Français | No | not yet | Stub |
| `de` | Deutsch | No | not yet | Stub |
| `zh` | 中文 | No | not yet | Stub |
| `ja` | 日本語 | No | not yet | Stub |
| `ko` | 한국어 | No | not yet | Stub |
| `ru` | Русский | No | not yet | Stub |
| `pt` | Português | No | not yet | Stub |
| `it` | Italiano | No | not yet | Stub |
All codes are registered in `supabase/seeds/01_core_languages.sql` and configured as VitePress locales in `apps/docs/.vitepress/config.ts`. Adding app locale JSON files is the primary contribution needed.
---
## Forum i18n (`apps/web` — React + i18next)
### Setup
- i18next initialised in `apps/web/src/i18n.ts`
- Locale files: `apps/web/src/locales/en.json` and `apps/web/src/locales/tr.json`
- Imported at app entry (`apps/web/src/index.tsx`) before `<App />`
- Language det