Translations on forms
Goal
Enter business names and labels in every locale your tenant enables — without duplicating records.
Who it is for
Clerks filling masters (items, parties, …) and admins who set enabled_locales / default locale.
Preconditions
- Tenant has one or more enabled locales (from tenant settings / localization).
- Forms that use
TranslatableInputshow a locale picker when more than one locale is enabled.
Steps
- Admin: set enabled locales and default locale under localization / tenant settings.
- On a form, find fields with the translation control (name, legal name, descriptions, …).
- Enter the value for the default locale (required).
- Switch locale tabs/picker and fill additional languages.
- Save — values store as jsonb maps
{ "en": "…", "ar": "…" }.
Result
Lists and documents display the best available locale via useLocalized(); validation rejects locale keys outside enabled_locales.
Hard stops
Missing default-locale value; unknown locale key in payload; single enabled locale hides the picker (still one required value).