Change the Driver App language
The Profile language selector can change the language used by the Driver App on the current installation. The selection updates local app state and can reload the translation dictionary used for later screens and requests.
Availability
Open Profile and look for the current language row. The selector appears only after the enabled-language list finishes loading and contains more than one language.
If the project has zero or one enabled language, the selector is hidden. A missing current label or flag can also mean that stored/default language resolution has not completed or that the language has no country-flag mapping.
Before you start
Selecting a language can write local storage, change the language held by the API client, and start a translation-dictionary read. The selection modal closes immediately after invoking the handler, before those operations are known to have settled.
This flow does not save a language preference to the Driver's user record in the reviewed source. Do not treat one installation's choice as an account-wide or cross-device setting.
Complete the task
- Open Profile.
- Select the row showing the current language and flag.
- Review the enabled language options.
- Select the language you want to use.
- Wait for any loading transition and for nearby labels to update.
- Leave and reopen Profile to confirm the selected language remains on this installation.
Selecting the already active language can close the modal without another storage write or translation refresh.
Verify the result
These observations have different meanings:
| Observation | What it shows | What it does not prove |
|---|---|---|
| Selection modal closes | The option handler was invoked | Local storage, API-client update, or translations completed |
| Current language label changes | In-memory language state changed | The full dictionary loaded or the choice survived restart |
| Nearby text changes | A translation dictionary or fallback text is rendering | Every screen is translated or provider data is complete |
| Language remains after reopening Profile | The active app state still holds the choice | Durable device persistence after restart or account-wide save |
| Restarted installation displays that language | The current resolution selected that language from available local/default mapping | Storage origin, durable persistence, server preference, or synchronization to another device |
If labels remain mixed, show translation keys, or revert, do not repeatedly change languages. Reopen Profile once and report the selected language and the affected screen.
States and variations
| State | What appears | Safe next step |
|---|---|---|
| Language list loading | Selector hidden | Wait before concluding only one language exists |
| More than one enabled language | Current-language row and option modal | Select one deliberate option |
| Zero or one language | Selector hidden | Use the configured language; no alternate choice is exposed |
| No stored language | Provider attempts project default | Wait for the current/default label to resolve |
| Stored language found | Provider uses stored language and updates API-client state | Translation refresh can still be pending |
| Stored/default language missing from list | Current label can be unresolved | Do not infer a successful default; report configuration issue |
| Same language selected | Modal closes; provider can no-op | No new persistence or translation result |
| Different language selected | Local write, API-client change, and translation load can begin | Wait and verify each layer separately |
| Modal cancelled | Modal closes without selecting | No intended language change |
| List request cancelled on unmount | Selector disappears or page closes while loading | No complete language-list claim |
| Translation read error | Fallback text, keys, or mixed language can appear | Reopen once; no provider-success claim |
| RTL language | Direction metadata can change later rendering | No full RTL or platform-equivalence certification |
Effects and boundaries
The language choice spans separate owners:
- the selector loads enabled languages;
- local storage attempts to retain the selected language;
- the API client changes the language attached to later requests;
- the language provider fetches a Driver App translation dictionary; and
- each screen renders dictionary text or a fallback/key when a translation is absent.
Those layers are not one transaction. Closing the modal, changing a flag, or seeing one translated label does not prove full persistence or translation coverage.
Troubleshooting
- If the selector is missing, wait for Profile to finish loading and confirm the project has more than one enabled language.
- If the current language is blank, leave and reopen Profile once; the stored or default language may still be resolving.
- If the app reverts after a later restart, report a local-persistence issue; do not assume the server changed the account.
- If some labels remain in another language, capture the screen name and label text without exposing account data.
- If an RTL language has layout problems, report the screen and platform rather than repeatedly toggling languages.
Related guides: Profile · Sessions · Navigate the Driver App