Localization
The app ships UI strings for: en, fr, es, ar, de, it, pt-BR, tr, hi, zh-CN. Flutter also requires language-only fallbacks app_pt.arb and app_zh.arb — those are tooling files, not extra product languages.
Arabic (ar) is RTL via Flutter Directionality. Missing strings fall back toward English.
This documentation site is English only. Adding a language to the app is a source/ARB task, not a /fr/ docs tree.
The technician picker is compiled ARB ∩ tenant-enabled. Adding backend/lang/nl.json on the Veldriq web server does not add Dutch to this APK/IPA. There is no OTA language download.
Where the technician changes language
Section titled “Where the technician changes language”Profile → Preferences → Language. Saving shows Language updated. Login before a session uses compiled locales ∩ the device locale.
Add a language after unzip (example: Dutch)
Section titled “Add a language after unzip (example: Dutch)”Work in mobile/ (the folder with pubspec.yaml). Do not edit files from documentation/.
- Copy
mobile/lib/l10n/app_en.arbtoapp_nl.arb. Keep every key, includinglanguageSelfName. - Translate. Same placeholders as English. Do not edit
lib/l10n/app_localizations*.dartby hand. - Generate and test:
cd mobileflutter pub getflutter gen-l10nflutter analyzeflutter test- Produce a new APK / IPA. Until technicians install that build,
nlis not selectable. Enable the locale on the web tenant as well, or it will not appear even after you rebuild Field.
API, session, and users.locale use hyphens (pt-BR, zh-CN). Flutter ARB files use underscores (app_pt_BR.arb). Do not send Locale.toString() to the API.
Related: Profile · Web localization.