- Supported languages
- Add or Improve localization
- Testing custom localization
- Contributing back to the community
Make the ThingsBoard mobile app more accessible for your users—add their language to the build or improve the existing translations.
Supported languages
Out of the box, the ThingsBoard mobile app supports the following languages:
- English
- Arabic
- Chinese (Taiwan)
- Chinese (Simplified)
Add or Improve localization
How localization works (Flutter + ARB)
The app reads localized strings from .arb
files in lib/l10n
. Each .arb
file represents one locale (e.g., intl_en.arb
for English). Keys stay the same across all languages; values change per locale.
For detailed information about Flutter's internationalization system, we recommend reading the official Internationalizing Flutter apps guide.
Step 1: Open the localization folder
Go to your project's lib/l10n
directory. You'll see files like:
1
2
3
intl_ar.arb
intl_en.arb
...
Step 2: Create a language file
Add a new .arb
file with translation using the format:
1
intl_<languageCode>.arb
For example:
intl_es.arb
for Spanishintl_fr.arb
for Frenchintl_de.arb
for German
Tip: If you need a region-specific variant, use BCP-47 style (e.g., intl_pt_BR.arb
).
Step 3: Add translations
- Copy the contents of the
intl_en.arb
into a new file. - Translate only the values (the text on the right of each key) into your target language. Do not change the keys.
Example structure:
1
2
3
4
5
{
"appTitle": "Your App Title Translation",
"login": "Your Login Translation",
"password": "Your Password Translation"
}
Step 4: Generate localization file
If app version is before 1.7.0
Execute the command:
1
flutter gen-l10n
This command will generate the necessary localization files for added language or update existing localizations.
If app version is 1.7.0 or later
We recommend installing the Flutter Intl extension, which automatically tracks localization changes and regenerates localization files.
Available Extensions:
- VS Code: Flutter Intl extension
- IntelliJ / Android Studio: Flutter Intl plugin
Alternative method (without extension)
If you prefer not to install the extension, you can use the manual approach:
- Add intl_utils to your project's dev dependencies:
1
flutter pub add -d intl_utils
- Generate localization files after each change:
1
dart run intl_utils:generate
Run this command after each change in your localization files to integrate those changes into mobile app.
Testing custom localization
- Change device/simulator language to your target locale and relaunch the app.
- If your language is right-to-left (e.g., Arabic), verify layout mirroring and text direction.
- Confirm pluralization, placeholders, and date/number formatting look correct.
Contributing back to the community
We welcome community contributions to improve ThingsBoard mobile localization.
How to contribute:
- Open a pull request to the repository with your updated or new
.arb
files. - Or submit an improvement request with the
.arb
files attached.
Your contributions help make the app accessible to users worldwide, and we'll add new localizations to the app globally for everyone to benefit from.