A dart tool which generates ARB files from CSV files.
A CSV file of the form
| keys | description | en | de | 
|---|---|---|---|
| myKey | The conventional newborn programmer greeting | Hello world! | Hallo Welt! | 
| welcome | A welcome message | Welcome {firstName}! | Willkommen {firstName}! | 
| numberMessages | An info message about new messages count | {count, plural, zero{You have no new messages} one{You have 1 new message} other{You have {count} new messages}} | {count, plural, zero{Du hast keine neue Nachrichten} one{Du hast eine neue Nachricht} other{Du hast {count} neue Nachrichten}} | 
| whoseBook | A message determine whose book it is | {sex, select, male{His book} female{Her book} other{Their book}} | {sex, select, male{Sein Buch} female{Ihr Buch} other{Ihr Buch}} | 
is generated into the following ARB file
{
  "@@locale": "en",
  "myKey": "Hello world!",
  "@myKey": {
    "description": "The conventional newborn programmer greeting"
  },
  "welcome": "Welcome {firstName}!",
  "@welcome": {
    "description": "A welcome message"
  },
  "numberMessages": "{count, plural, zero{You have no new messages} one{You have 1 new message} other{You have {count} new messages}}",
  "@numberMessages": {
    "description": "An info message about new messages count"
  },
  "whoseBook": "{sex, select, male{His book} female{Her book} other{Their book}}",
  "@whoseBook": {
    "description": "A message determine whose book it is"
  }
}This ARB file can then be converted into localization delegates using intl or intl_utils.
Firstly, add the package as a dev dependency:
dev_dependencies: 
  arb_generator:Next define arb_generator package settings in pubspec.yaml. Note that input_filepath is the only required parameter.
arb_generator:
  input_filepath: "assets_dev/test.csv"
  output_directory: "lib/l10n"
  filename_prepend: "intl_"
  csv_settings:
    delimiter: ";"
    description_index: 1
    base_index: 2| Setting | Description | 
|---|---|
| input_filepath | Required. A path to the input CSV file. | 
| output_directory | A directory to generate the output ARB file(s). Defaults to lib/l10n | 
| filename_prepend | Text to prepend to filename of generated files. Defaults to empty string. | 
| csv_settings: delimiter | A delimiter to separate columns in the input CSV file. Defaults to ,. | 
| csv_settings: description_index | The description column index. Defaults to null. | 
| csv_settings: base_index | The column index of the base language in the input CSV file. Defaults to 1. | 
Ensure that your current working directory is the project root and run the following command:
dart run arb_generatorARB files are then generated in output_directory.
Spotted any issues? Please open an issue on GitHub! Would like to contribute a new feature? Fork the repo and submit a PR!