conventions-i18n
$
npx mdskill add stella/stella/conventions-i18nStandardize international string translations for Stella applications.
- Ensures consistent, idiomatic translations across all supported languages.
- Depends on use-intl runtime and typegen for type declarations.
- Prioritizes reusable generic keys over feature-specific naming patterns.
- Requires manual updates to JSON files before running type generation.
SKILL.md
.github/skills/conventions-i18nView on GitHub ↗
--- name: conventions-i18n description: 'Internationalization conventions for Stella. Apply when adding or modifying user-facing strings.' --- # i18n Conventions Internationalization conventions for Stella. Apply when adding or modifying user-facing strings. ## Stack `use-intl` for runtime. ## Supported Languages en is the source language. Check `apps/web/src/i18n/langs/` for the current list of target languages (add translations to every `.json` file found there). ## Translation Flow 1. Add or modify keys in `apps/web/src/i18n/langs/en.json`. 2. Add corresponding translations to **all target language files** found in `apps/web/src/i18n/langs/` (every `.json` file except `en.json`). Write natural, idiomatic translations; avoid literal/robotic phrasing. 3. Run `i18n-typegen src/i18n/langs` (from `apps/web`) to regenerate type declarations (also runs automatically before `bun run typecheck`). ## Key Naming **Prefer generic, reusable keys over feature-specific ones.** Before adding any new i18n key, search `en.json` for an existing key with the same or similar wording (e.g., `common.filter`, `common.sort`, `common.columns`). Reuse `common.*` or shared namespace keys instead of creating feature-scoped duplicates like `billing.expenses.deleteExpense`. Feature-specific keys are only justified when the wording truly differs from the generic version (e.g., a confirmation message that mentions the resource by name). Key naming, pluralization, and style rules are documented in `apps/web/src/i18n/TERMINOLOGY.md`.