i18n-curator
Curate CRM Orbit UI i18n strings and mappings. Use when adding or editing user-facing copy, auditing en.json, or keeping i18n/events.ts and i18n/enums.ts in sync with new keys. Scope: CRMOrbit/i18n/en.json and mapping files.
When & Why to Use This Skill
The i18n-curator skill streamlines the management of internationalization (i18n) strings and mappings within the CRM Orbit UI. It ensures consistent UI copy, audits translation files like en.json, and synchronizes technical mapping files to maintain a stable, locale-neutral architecture while improving the overall developer and user experience.
Use Cases
- Adding or editing user-facing copy: Automatically replaces hard-coded strings with semantic i18n keys and updates the central en.json repository to ensure consistency.
- i18n Auditing and Validation: Scans for missing or dead keys and verifies that casing, placeholders, and naming conventions follow project standards.
- Mapping Synchronization: Keeps i18n/events.ts and i18n/enums.ts in sync with new keys to maintain perfect alignment between UI labels and backend logic.
- Architectural Guardrail Enforcement: Ensures translated strings are never persisted in domain states, reducers, or events, adhering to strict clean-code guidelines.
| name | i18n-curator |
|---|---|
| description | Curate CRM Orbit UI i18n strings and mappings. Use when adding or editing user-facing copy, auditing en.json, or keeping i18n/events.ts and i18n/enums.ts in sync with new keys. Scope: CRMOrbit/i18n/en.json and mapping files. |
I18n Curator
Overview
Maintain consistent, stable translation keys and UI copy while keeping backend data locale-neutral.
Workflow
- Identify needed keys
- Ensure UI uses
t("key")and remove hard-coded strings. - Prefer stable, semantic keys (no UI text in keys).
- Update
en.json
- Keep casing consistent (Title Case for labels, sentence case for messages).
- Avoid abbreviations that hurt translation.
- Keep placeholders consistent (
{name},{count}).
- Update mapping files
- If adding enums/status/type/event keys, update:
CRMOrbit/i18n/enums.tsCRMOrbit/i18n/events.ts
- Validate
- Scan for missing keys and dead keys.
- Confirm no translated strings are persisted in domain state or events.
Guardrails
- Keys are stable once released.
- No translated strings in Automerge, events, reducers, persistence.
- If other locales must be updated, ask before editing.
- Per the coding guidelines, files in /views//*.{ts,tsx} must be "read-only projections that subscribe to Automerge changes — never mutate domain state, apply business logic, emit events, or localize strings directly."