SDK UI strings — auth button labels, sheet headers, loader accessibility text — follow the device locale by default via bundled expo-localization. No setup is required:
Code
Explicit locale
Pass a locale when your app manages language itself (for example, an in-app language picker) so SDK strings stay in sync with the rest of your UI:
Code
i18next, react-i18next, and expo-localization are bundled with the UI package for SDK localization — you don't install them unless you want expo-localization for your own app screens.
What locale does and doesn't affect
locale controls SDK UI copy only:
| Surface | Localized by locale? |
|---|---|
| Auth button labels, sheet headers, loader accessibility strings | Yes |
| Bible passage text | No. That comes from the selected Bible version. |
Bible translation selection (versionId, version picker) | Separate concern |
App locale is not Bible language. Which Bible translation renders is controlled by versionId and the version picker, never derived from locale. A user can run your app in Spanish and read the Berean Standard Bible (BSB) in English, or the other way around.