ARB ⇄ Xcode String Catalog Converter
Turn Flutter .arb files into one Localizable.xcstrings, or a String Catalog back into one ARB file per language. Placeholders, plurals and descriptions are mapped. Runs in your browser, nothing is uploaded.
Drop your .arb files here (app_en.arb, app_de.arb, …) or
Keep both apps in sync without converting by hand
A FlutterLocalisation project can ship Flutter, native iOS or both. One set of keys, AI translation for new strings, review per language, and both the ARB files and the String Catalog committed to Git.
How the mapping works
Frequently asked questions
How do I convert ARB files to an Xcode String Catalog?
Drop your app_en.arb, app_de.arb and so on into the converter. It merges them into one Localizable.xcstrings: named placeholders become %@, %lld or %lf (numbered when a string has several), ICU plurals become plural variations, and the @description becomes the Xcode comment. Download the file and add it to your Xcode target.
How do I convert a .xcstrings file to ARB files for Flutter?
Drop the Localizable.xcstrings. You get one ARB file per language with the source language first. Printf arguments turn into named placeholders (arg1, arg2) typed as String, int or double, and plural variations turn back into ICU plural strings.
What cannot be converted?
ICU select (gender switches) has no String Catalog equivalent. Going the other way, String Catalog substitutions and device variations have no ARB equivalent. Keys that are not valid Dart identifiers cannot be used by gen-l10n. The converter lists each case by key instead of guessing.
Why does the catalog look exactly like one Xcode wrote?
The output uses Xcode's own serialisation: sorted keys, " : " separators and two-space indentation. When you open and build it, Xcode does not rewrite the file, so your Git diff stays clean.
Is anything uploaded?
No. The conversion runs in your browser. Nothing leaves your machine.
Can I keep a Flutter app and a Swift app in sync from one set of keys?
Yes. FlutterLocalisation does exactly this: one project with both platforms exports ARB files for Flutter and a String Catalog for Xcode, translates new keys with AI and commits both to Git. This converter is the one-off version of that.