ARB (Application Resource Bundle)
JSON-based translation file format used by Flutter and Google's localization tools.
Definition
ARB (Application Resource Bundle) is a JSON-based localization file format developed by Google. It's the default format for Flutter localization and supports ICU MessageFormat syntax, metadata for translators (descriptions, placeholders), and plural/gender forms. ARB files are human-readable and can include contextual information for translators.
Examples
- →Basic: {"hello": "Hello World"}
- →With metadata: {"hello": "Hello", "@hello": {"description": "Greeting"}}
- →Plural: {"itemCount": "{count, plural, =0{No items} =1{1 item} other{{count} items}}"}
- →Placeholder: {"@itemCount": {"placeholders": {"count": {"type": "int"}}}}
Frequently Asked Questions
Why does Flutter use ARB instead of JSON?
ARB extends JSON with metadata support (@key for descriptions, placeholders). This helps translators understand context without separate documentation. Flutter's gen-l10n tool reads ARB and generates type-safe Dart code.
Can I convert ARB to other formats?
Yes. Most TMS platforms (including IntlPull) support ARB import/export. Tools exist to convert ARB ↔ JSON, ARB ↔ XLIFF. The metadata (@keys) may be lost in simpler formats.