Flutter ARB — English
A Flutter Application Resource Bundle (English) — JSON messages with matching @key metadata (descriptions and typed placeholders) using ICU {name} syntax, as Flutter's gen-l10n consumes.
{
"@@locale": "en",
"greeting": "Hello",
"@greeting": {
"description": "Greeting shown on the home screen"
},
"welcome": "Welcome, {name}",
"@welcome": {
"description": "Welcome message with the user's name",
"placeholders": {
"name": {
"type": "String",
"example": "Sam"
}
}
},
"save": "Save",
"@save": {
"description": "Save button label"
},
"cancel": "Cancel",
"@cancel": {
"description": "Cancel button label"
},
"search": "Search",
"@search": {
"description": "Search field placeholder"
},
"settings": "Settings",
"@settings": {
"description": "Settings menu item"
},
"logout": "Log out",
"@logout": {
"description": "Log out menu item"
}
}
Specifications
- Format
- Flutter ARB (JSON)
- Locale
- en
- Placeholders
- ICU {name}
- Metadata
- @key blocks
What is a .arb file?
An ARB file (.arb, Application Resource Bundle) is a JSON-based localization format used by Flutter and Google tools. Alongside each key's translated string it stores metadata in a matching @key object — a description and typed placeholders — and uses ICU message syntax with {name} placeholders and plural/select rules.
How to use this file
Use an example .arb file to test Flutter's gen-l10n pipeline, ARB editors and converters, and ICU message-syntax parsers, or to exercise placeholder and plural handling.
How to use this file for testing
“Flutter ARB — English” is a deterministic Novus Examples fixture for Localization catalogs, Internationalization, Editor testing. Gettext PO/POT, XLIFF, Apple .strings, Flutter .arb, Android strings.xml, .NET .resx, and i18next JSON — with RTL and CJK variants — for testing localization pipelines, translation-memory tools, and catalog converters.
Documented properties for this file: Flutter ARB (JSON). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Translation-catalog fixtures carry the same message set across formats, each with its native placeholder syntax. Test your i18n loader, catalog converter, or translation-memory tool, and use the RTL and CJK variants to check bidirectional text and Unicode handling.
Load the catalog with your i18n framework and verify placeholder interpolation and plural handling; the RTL and CJK variants exercise bidirectional text and font fallback.
Code examples
import json
data = json.load(open("app_en.arb", encoding="utf-8"))
msgs = {k: v for k, v in data.items() if not k.startswith("@")}
print(len(msgs), "messages")Related files
- resx.NET RESX — EnglishA .NET Resources.resx file (English) with the standard ResX schema and resheader block plus name/value string data and comments, using {0} composite-format placeholders.

- resx.NET RESX — SpanishThe Spanish satellite RESX (Resources.es.resx) — for testing .NET resource parsers and culture-based resource resolution against the same keys.

- xmlAndroid strings.xml — EnglishAn Android values/strings.xml (English) with string resources, a <plurals> block, and a <string-array>, using positional %1$s placeholders — the res/values/ default catalog.

- xmlAndroid strings.xml — SpanishThe Spanish Android strings.xml (as res/values-es/) — for testing Android resource parsers, plurals, and string-array localization.

- stringsApple .strings — EnglishAn Apple Localizable.strings file (English) — quoted key = value pairs with comments and %@ placeholders, as iOS/macOS apps use per-locale in .lproj folders.

- stringsApple .strings — SpanishThe Spanish twin of the Apple .strings catalog — for testing .strings parsers and en/es diffing against the same keys.

Generated by generation/localization.py. Free for any use, no attribution required — license.