Flutter › Internationalization & Localization (i18n)

How do ARB files let you properly organize and store your app's own translated text strings for each individual specific supported language?

Beginner

Answer

ARB, meaning Application Resource Bundle, is a genuinely simple, well established JSON based file format specifically used for storing your app's own translated text strings, with each individual specific supported language genuinely stored within its own separate corresponding ARB file, such as app_en.arb for English and app_es.arb for Spanish, and Flutter's own official code generation tooling reads these particular ARB files and automatically generates the actual corresponding strongly typed Dart methods you can then genuinely call directly from within your own widget code to properly retrieve the correct translated text for whichever specific locale is currently actually genuinely active.
// app_en.arb
{
  "welcomeMessage": "Welcome to our app"
}

// app_es.arb
{
  "welcomeMessage": "Bienvenido a nuestra aplicacion"
}
Real-world example A translation team properly manages separate individual ARB files for each of their app's own ten genuinely supported languages, letting professional translators work directly within these simple, clean JSON files without genuinely needing to touch or understand any actual underlying Dart source code themselves at all.

Common follow-ups: How does the specific build_runner tool actually genuinely generate Dart code directly from these particular ARB files?;What genuinely happens if a specific given translation key is accidentally completely missing from one particular specific language's own ARB file?