Flutter localization tool
for ARB files

Manage .arb translation files, auto-translate with AI,
and sync with your Flutter project via CLI.

No credit card required14-day free trialTracking-free service
SimpleLocalize - Flutter ARB translation editor
ARB file formatFlutter Intlflutter gen-l10nl10n.yamlAppLocalizationsICU message formatPluralizationCLI & REST APIDeepL · Google Translate · OpenAIiOS & Android in one projectTranslation hosting CDNCI/CD syncARB file formatFlutter Intlflutter gen-l10nl10n.yamlAppLocalizationsICU message formatPluralizationCLI & REST APIDeepL · Google Translate · OpenAIiOS & Android in one projectTranslation hosting CDNCI/CD sync

We power your product localization
From first commit to global launch

Used at IntersportUsed at IKEAUsed at InvisalignUsed at AmdocsUsed at OSRAMUsed at project44Used at nglUsed at SpitfireAudioUsed at SagemathUsed at UNICEFUsed at AstraZenecaUsed at nabooUsed at walcuUsed at vocal remover

Why Flutter teams
use SimpleLocalize

Flutter localization starts simple: a few .arb files, flutter gen-l10n, and AppLocalizations. But as your app grows to 10+ languages, keeping .arb files in sync across branches becomes painful. Translators editing JSON by hand introduce broken placeholders and merge conflicts.

SimpleLocalize acts as the single source of truth for your translations. Upload .arb files via CLI, translate with AI or your team, and download clean .arb files ready for flutter gen-l10n. No manual JSON editing, no merge conflicts. Learn how to manage ARB translation files effectively.

Flutter localization workflow

How it works

From .arb to production in 3 steps

A CLI-first workflow that keeps your Flutter translations in sync with every release.

1

Upload source .arb

Run simplelocalize upload to push your source app_en.arb file. Keys, values, descriptions, and metadata are preserved.

2

Translate & review

Auto-translate with DeepL or OpenAI, then review in the online editor. Placeholders and plural forms are validated automatically.

3

Download & generate

Run simplelocalize download to pull translated .arb files. Then run flutter gen-l10n to generate type-safe AppLocalizations.

For a step-by-step walkthrough, see the getting started guide.

Ready to simplify Flutter localization?

Start a free project and upload your first .arb file in minutes.

Start for free

CLI pipeline

From .arb to production
in two commands

Upload your source locale, translate in the cloud, and pull back clean .arb files ready for flutter gen-l10n.

Terminal
# Upload source .arb file $ simplelocalize upload --uploadFormat arb --uploadLanguageKey en --uploadPath ./lib/l10n/app_en.arb ✓ Uploaded 128 keys from app_en.arb # Auto-translate to all target languages $ simplelocalize auto-translate ✓ Translated 128 keys into 12 languages # Download translated .arb files $ simplelocalize download --downloadFormat arb --downloadPath ./lib/l10n/app_{lang}.arb ✓ Downloaded 12 .arb files # Generate type-safe AppLocalizations $ flutter gen-l10n ✓ Generated AppLocalizations for 12 locales

Add these commands to your CI/CD pipeline for fully automated localization with every build. Read the ARB file format documentation or get started with the CLI.

One project
for Flutter, iOS, and Android

Building a cross-platform app with native components? Manage all translations in a single SimpleLocalize project and export each platform's format separately.

Flutter (ARB)

Upload and download .arb files with translation descriptions. Works with flutter gen-l10n and the Intl package.

iOS (Strings)

Export .strings and .stringsdict files for native iOS components. Same keys, same project.

Android (XML)

Export Android XML string resources for native Android modules. One source, multiple output formats.

One project for Flutter, iOS, and Android

Why SimpleLocalize

Built for Flutter developers

Developer-first tooling that fits the Flutter localization workflow.

ARB native
Full .arb file format support with key descriptions and metadata.
CLI-first
Upload and download .arb files from the command line. Fits into any CI/CD runner.
Multi-platform
Manage Flutter, iOS, and Android translations in one project. Export each format separately.
AI translation
DeepL, Google Translate, OpenAI and more. One click or fully automated.
Validation
Placeholder and plural validation catches errors before they reach production.
Flat pricing
Simple, predictable pricing based on translation keys with no hidden fees.

Start localizing your Flutter app today

  • All-in-one localization platform
  • Web-based translation editor for your team
  • Auto-translation, QA-checks, AI and more
  • See how easily you can start localizing your product.
  • Powerful API, hosting, integrations and developer tools
  • Unmatched customer support
Start for free
No credit card required5-minute setup
"The product
and support
are fantastic."
Laars Buur|CTO
"The support is
blazing fast,
thank you Jakub!"
Stefan|Developer
"Interface that
makes any dev
feel at home!"
Dario De Cianni|CTO
"Excellent app,
saves my time
and money"
Dmitry Melnik|Developer

Frequently asked questions

How does SimpleLocalize handle .arb files?

SimpleLocalize natively supports the ARB file format. When you upload an .arb file, all keys, values, @-prefixed descriptions, and ICU metadata are parsed and preserved. When you download, you get clean .arb files that work directly with flutter gen-l10n and the Intl package. Placeholders and plural forms are validated across all languages to catch errors early.

What does the CLI to ARB to Flutter pipeline look like?

The typical workflow is: run simplelocalize upload to push your source app_en.arb file, translate in SimpleLocalize (manually or with AI), then run simplelocalize download to pull translated .arb files for all locales. Finally, run flutter gen-l10n to regenerate your type-safe AppLocalizations class. Add these commands to your CI/CD pipeline for fully automated localization with every build.

Can I manage Flutter, iOS, and Android translations in one project?

Yes. SimpleLocalize uses a universal format internally, so one project can hold all your translation keys and export them as .arb (Flutter), .strings/.stringsdict (iOS), or Android XML. This is ideal for teams building cross-platform apps with native components. You translate once and export to every format your app needs.

How does SimpleLocalize keep .arb files in sync across branches?

The SimpleLocalize CLI acts as the single source of truth for translations. Instead of editing .arb files by hand in different branches, every branch pulls the latest translations from SimpleLocalize. This eliminates merge conflicts in .arb files and ensures every build uses consistent, up-to-date translations. You can integrate the upload and download commands into CI/CD pipelines so syncing happens automatically.

Does SimpleLocalize work with l10n.yaml and flutter gen-l10n?

Yes. SimpleLocalize downloads .arb files into the directory specified in your l10n.yaml configuration (typically lib/l10n/). After downloading, you run flutter gen-l10n as usual to generate the AppLocalizations class. No changes to your Flutter project configuration are needed.

What i18n features does SimpleLocalize support for Flutter?

SimpleLocalize supports ICU message format including pluralization, gender rules, and variable interpolation. Placeholder validation catches broken {count} or missing plural forms across all target languages. You can also use auto-translation with DeepL, Google Translate, or OpenAI, set up no-code automations, and deliver translations via CDN for over-the-air updates. See our developer localization platform page for the full feature set.