Skip to content
Stand with Ukraine flag

Add a custom localization to ThingsBoard Mobile Application

Add a new language to the mobile app build or improve an existing translation.

The ThingsBoard PE mobile app includes the following languages by default:

  • English
  • Arabic
  • Chinese (Taiwan)
  • Chinese (Simplified)

The app reads localized strings from .arb files in lib/l10n. Each .arb file represents one locale — for example, intl_en.arb for English. Keys stay the same across all languages; only the values change per locale.

For full details on Flutter’s internationalization system, see the official Internationalizing Flutter apps guide.

  1. Open the localization folder.

    Go to your project’s lib/l10n directory. You’ll see files like:

    intl_ar.arb
    intl_en.arb
    ...
  2. Create a language file.

    Add a new .arb file named using the format intl_<languageCode>.arb. For example:

    • intl_es.arb — Spanish
    • intl_fr.arb — French
    • intl_de.arb — German

    For a region-specific variant, use BCP-47 style — for example, intl_pt_BR.arb.

  3. Add translations.

    Copy the contents of intl_en.arb into the new file. Translate only the values (the text on the right of each key). Do not change the keys.

    {
    "appTitle": "Your App Title Translation",
    "login": "Your Login Translation",
    "password": "Your Password Translation"
    }
  4. Generate localization files.

    App version 1.7.0 and later — install the Flutter Intl extension, which automatically tracks localization changes and regenerates files:

    Without the extension — add intl_utils to dev dependencies and run the generator manually:

    Terminal window
    flutter pub add -d intl_utils
    Terminal window
    dart run intl_utils:generate

    Run the generate command after each change to your .arb files.

    App version before 1.7.0 — run:

    Terminal window
    flutter gen-l10n
  • Change your device or simulator language to the target locale and relaunch the app.
  • For right-to-left languages like Arabic, verify layout mirroring and text direction.
  • Check that pluralization, placeholders, and date/number formatting look correct.

Community contributions to improve localization are welcome. To contribute:

  • Open a pull request to the <a href="https://github.com/thingsboard/flutter_thingsboard_pe_app" target="_blank" rel="noopener noreferrer">flutter_thingsboard_pe_app</a> repository with your new or updated .arb files.
  • Submit an improvement request with the .arb files attached.