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


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.
From .arb files to AppLocalizations, SimpleLocalize fits into every step of your Flutter i18n pipeline.
A CLI-first workflow that keeps your Flutter translations in sync with every release.
Run simplelocalize upload to push your source app_en.arb file. Keys, values, descriptions, and metadata are preserved.
Auto-translate with DeepL or OpenAI, then review in the online editor. Placeholders and plural forms are validated automatically.
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.
Start a free project and upload your first .arb file in minutes.
Start for freeCLI pipeline
Upload your source locale, translate in the cloud, and pull back clean .arb files ready for flutter gen-l10n.
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.
Building a cross-platform app with native components? Manage all translations in a single SimpleLocalize project and export each platform's format separately.
Upload and download .arb files with translation descriptions. Works with flutter gen-l10n and the Intl package.
Export .strings and .stringsdict files for native iOS components. Same keys, same project.
Export Android XML string resources for native Android modules. One source, multiple output formats.

Why SimpleLocalize
Developer-first tooling that fits the Flutter localization workflow.
Guides and tutorials for Flutter localization with SimpleLocalize.

Unicode characters that are invisible, look identical, or behave unexpectedly across languages. A practical guide to the encoding issues that break localized apps in ways that are very hard to debug.

Translated text is almost always longer than English. Learn how text expansion breaks UI layouts, how much expansion to expect per language, and the CSS and design patterns that prevent it.

These localization anti-patterns cost teams weeks of rework, budget overruns, and release delays. Learn to recognize them early and avoid the most expensive mistakes.

A practical RTL design guide for developers. Learn how to implement right-to-left layouts for Arabic, Hebrew, and Persian, with real CSS examples, common mistakes, and a hotel booking UI walkthrough.

Everything developers need to know about .xcstrings string catalogs. Covers JSON schema, extractionState and translationState flags, pluralization, device variants, universal placeholders, Git merge conflict strategies, Xcode 26 AI comments, and SimpleLocalize integration.

Compare locale detection strategies with code examples. Learn the trade-offs of URL paths, cookies, and headers with an architectural decision framework.
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.
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.
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.
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.
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.
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.