Translate your Flutter app's .arb files, then read every line back before you ship
Upload lib/l10n/app_en.arb — KAERIS translates all 46 languages, then reads each line back to you in your own language and flags the ones worth a second look. Catch the shaky ones before release, not after. @@locale, @key metadata and {count, plural, ...} stay intact.
Upload app_en.arb
Or run kaeris init --preset flutter-arb to point the CLI at lib/l10n/ directly.
Pick locales
46 languages, mapped straight to Flutter's supportedLocales.
Ship
Drop the output back into lib/l10n/ and run flutter gen-l10n.
Before → after
{ "@@locale": "en", "welcome": "Welcome back, {name}!", "cartItemCount": "{count, plural, one{You have {count} item} other{You have {count} items}}", "@cartItemCount": { "description": "Shown on the cart screen", "placeholders": { "count": { "type": "int" } } } }
{ "@@locale": "de", "welcome": "Willkommen zurück, {name}!", "cartItemCount": "{count, plural, one{Du hast {count} Artikel} other{Du hast {count} Artikel}}", "@cartItemCount": { "description": "Shown on the cart screen", "placeholders": { "count": { "type": "int" } } } }
The @cartItemCount metadata block — description and placeholder type — is copied through untouched. Only translatable string content moves.
ARB-native
Reads and writes real .arb — @@locale and every @key metadata block (description, placeholder types) survives untouched.
ICU plural/select preserved
{count, plural, ...} and {gender, select, ...} blocks are preserved verbatim and translated as one unit — never string-mangled.
gen-l10n ready
Output drops straight into lib/l10n/ — no post-processing before flutter gen-l10n.
One CLI command
kaeris init --preset flutter-arb scaffolds locale detection from your existing ARB folder.
{count} / {name} is never dropped or mistranslated..arb out, metadata and ICU intact, not a flattened wrapper.Beyond .arb, KAERIS speaks all 11 formats — JSON, YAML, .strings, .po, ARB, Android XML, CSV (incl. Godot/Unity), XLIFF, .properties, .resx and Mozilla Fluent (.ftl) — same placeholder-safe engine across your whole stack.
Ship Flutter in every market
46 languages, ARB-native, ICU-safe. Free to start, no account required.
$ pip install kaeris $ kaeris init --preset flutter-arb