# Regenerating the i18n files The files in this directory are used to generate `stock_strings.dart`, which is used by the stocks application to look up localized message strings. The stocks app uses the [Dart `intl` package](https://github.com/dart-lang/intl). Rebuilding everything requires two steps. 1. Create or update the English and Spanish localizations, `stocks_en_US.arb`, `stocks_en.arb`, and `stocks_es.arb`. See the [ARB specification](https://github.com/google/app-resource-bundle/wiki/ApplicationResourceBundleSpecification) for more info. 2. With `examples/stocks` as the current directory, generate a `messages_<locale>.dart` for each `stocks_<locale>.arb` file, `messages_all.dart`, and `stock_strings.dart` with the following command: ```dart dart ${FLUTTER_PATH}/dev/tools/localization/bin/gen_l10n.dart --arb-dir=lib/i18n \ --template-arb-file=stocks_en.arb --output-localization-file=stock_strings.dart \ --output-class=StockStrings --header-file=header.txt ``` The `StockStrings` class creates a delegate that performs message lookups based on the locale of the device. In this case, the stocks app supports `en`, `en_US`, and `es`. Thus, the `StockStringsEn` and `StockStringsEs` classes extends `StockStrings`. `StockStringsEnUs` extends `StockStringsEn`. This allows `StockStringsEnUs` to fall back on messages in `StockStringsEn`.