---
title: "S02 bindings"
description: "Data-binding map of Onboarding · Practice language: every field to its source, and what each required state shows."
source: "design/hifi/S02/bindings.md"
---

> Part of [Brand and design](/design/llms.txt). Every page: [llms.txt](/llms.txt).

# Data-binding map: S02 Onboarding · Practice language

> Generated by `botgumi-design index` from `../../screens.json`. Edit that file, not this page.

Every field [S02](/design/hifi/s02/index.md) shows and where it comes from.

| Field | Source (endpoint or local state) | Format | Fallback |
|---|---|---|---|
| language · options | `api GET /config supported_practice_languages` · `config.supported_practice_languages` | endonym (`lang.<tag>`), device locale first and pre-selected | `[en, zh-Hans]` |
| language · selection | `local onboarding.practice_language` · `onboarding.practice_language` | — | device locale if supported, else `en` |
| language · UI note | `device ui_locale` · `local:Locale.current` | `onboarding.language.ui_note` | — |
| `onboarding.practice_language = en (GET /v1/config → supported_practice_languages)` | `local onboarding.practice_language` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `onboarding.practice_language = zh-Hans (GET /v1/config → supported_practice_languages)` | `local onboarding.practice_language` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |

## Binds on the boards

The `data-bind` values across every state.

- `onboarding.practice_language = en (GET /v1/config → supported_practice_languages)`
- `onboarding.practice_language = zh-Hans (GET /v1/config → supported_practice_languages)`

## States

- Loading: From [states.md](/design/states/index.md) (Onboarding (6 steps)): n/a (local)
- Empty: From [states.md](/design/states/index.md) (Onboarding (6 steps)): n/a
- Error (retryable / not): From [states.md](/design/states/index.md) (Onboarding (6 steps)): `POST /onboarding` failed: inline banner + Retry; answers kept · fatal: generic error, answers kept
- Offline: From [states.md](/design/states/index.md) (Onboarding (6 steps)): answers kept; submit queued; diagnostic needs network → "Connect to start your diagnostic"
