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.ts - •
CRMOrbit/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."