ICU Message Converter
Convert ICU MessageFormat to i18next JSON, Android strings.xml, and Flutter ARB online: type or paste ICU in the source field and all three outputs update in real time. Plural-only ICU maps to Android <plurals>; other patterns export as CDATA <string> values as a starting point.
Validate output sources with the ICU validator, preview in the playground, align branches using target templates or locale plural rules, and see more at examples.
Source (ICU)
i18next (JSON)JSON translation files for the i18next library in JavaScript apps. Each value is the message string, often with doubled braces so MessageFormat can format plurals and variables at runtime.
{
"message": "{{count, plural,\n one {{# item}}\n other {{# items}}\n}}"
}Android (strings.xml)XML resources under
res/values/ that Android loads for native apps. Simple plurals become <plurals>; full ICU usually needs Kotlin/Java or a formatting library.<plurals name="message"> <item quantity="one">%d item</item> <item quantity="other">%d items</item> </plurals>
Flutter (ARB)Application Resource Bundle JSON used by Flutter
gen-l10n. The message lives on the key; @key metadata lists placeholders so the tool generates type-safe Dart getters.{
"message": "{count, plural,\n one {# item}\n other {# items}\n}",
"@message": {
"placeholders": {
"count": {
"type": "num"
}
}
}
}