0009. Forms and i18n
- Status: Accepted
- Date: 2026-10-10
- Questions: D7, D8
Decision
Section titled “Decision”- Forms (D7): react-hook-form 7 with
@hookform/resolvers/zod. The same Zod schema validates the form and the API payload. Field primitives inshared/ui/formhandle labels, errors, hints, keyboard avoidance (keyboard-controller) and next-field focus. Forms that must not submit offline use offline pattern C (input kept, submit disabled). - i18n (D8): i18next + react-i18next with
react-native-localizefor the device locale and a manual override in Settings. Translation keys are typed fromen.json. ICU-style plurals andIntlformatting. A lint rule flags hard-coded user-visible strings. RTL is supported (ADR 0008). Languages: English and Hindi, see 0017.
Alternatives considered
Section titled “Alternatives considered”- TanStack Form: type-first, smaller ecosystem.
- Lingui: excellent extraction workflow, less common in templates.
Made by Praveen Singh, Senior React Native engineer