localization_generator

A command tool to generate localization from JSON file.

Dart CI

Getting Start

Add to your pubspec.yaml.

dependencies:
  intl: ^0.17.0
dev_dependencies:
  localization_generator: <last_version>

Add translation files to a folder.

l10n
  +- {languageCode}.json
  +- {languageCode}-{countryCode}.json
  +- {languageCode}-{scriptCode}.json

Run the following command.

flutter pub run localization_generator --output=./l10n --input=./l10n

Configuration app.

// Import the generated localization file.
import 'l10n/localization.dart';

MaterialApp(
  onGenerateTitle: (context) {
    return Localized.of(context).hello(name: "my name");
  },
  theme: ThemeData(
    primarySwatch: Colors.blue,
  ),
  localizationsDelegates: [
    Localized.delegate,
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate
  ],
  supportedLocales: Localized.delegate.supportedLocales,
  home: Builder(builder: (context) {
    return Column(
      children: [
        Text(Localized.of(context).hi),
        Text(Localized.of(context).price(currency: "TWD")),
        Text(Localized.of(context).gender(gender: "female")),
        Text(Localized.of(context).reply(count: 0)),
      ],
    );
  }),
);

Example project

MessageFormat

The message pattern is follow the ICU MessageFormat.

Unsupport

  • offset of plural
  • date
  • number

Libraries

app_localized_class_generator
app_localized_file_generator
generate_exception
generator
icu_parser
intl_generator
invalid_argument_exception
invalid_choice_exception
invalid_option_exception
json_loader
list
loader
localization_class_generator
localization_generator_exception
main
missing_close_curly_exception
missing_keys_exception
missing_open_curly_exception
parser
parser_exception
reach_end_exception
string
token