json_intl_gen 3.0.0 copy "json_intl_gen: ^3.0.0" to clipboard
json_intl_gen: ^3.0.0 copied to clipboard

Flutter Internationalization library based on Json files and mustache replacement strings. Code generator library.

json_intl #

Flutter Internationalization generator based on Json files

Getting Started #

Add json_intl_gen to your dev_dependencies.

flutter pub add --dev json_intl_gen

Command-line generation #

Translation keys only #

To generate the translation keys, run:

dart run json_intl_gen

this generates a file lib/intl.dart containing a class IntlKeys with all the keys from the json files, using stardard Dart naming conventions. To use it, simply do:

JsonIntl.of(context).get(IntlKeys.appName);

It will also generate a list of locales supportedLocalesIntlKeys and availableLocalesIntlKeys found in the asset folder, directly usable in your MaterialApp Widget:

MaterialApp(
  localizationsDelegates: const [
    jsonIntlDelegate,
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  supportedLocales: supportedLocalesIntlKeys,
  home: ...,
);

Full translations #

To generate the full translation strings into a dart source, run:

dart run json_intl_gen -b

this generates a file lib/intl.dart with the same data as translation keys only, plus the translated strings. Update your MaterialApp Widget with:

MaterialApp(
  localizationsDelegates: const [
    jsonIntlDelegate,
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  supportedLocales: supportedLocalesIntlKeys,
  home: ...,
);

You can then remove the assets/intl/ folder from your pubspec.yaml as they will not be used anymore. The translation strings are now part of the application.

Command-line options #

Usage:   json_intl_gen [options...]

Options:
-s, --source            Source intl directory
                        (defaults to "assets/intl")
-d, --destination       Destination dart file
                        (defaults to "lib/intl.dart")
-c, --classname         Destination class name
                        (defaults to "IntlKeys")
-l, --default-locale    Default generated locale
                        (defaults to "en")
-b, --builtin           Generate full built-in localizations
-m, --mangle            Change keys to a random string
-v, --verbose           Verbose output
    --version           Print the version information
-h, --help              Shows usage information

build_runner generation #

Add the build_runner dev dependency

flutter pub add --dev build_runner

Build the intl.dart file

dart run build_runner build

In your MaterialApp, add:

MaterialApp(
  localizationsDelegates: const [
    jsonIntlDelegate,
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  supportedLocales: supportedLocalesIntlKeys,
);

Builder options are configured in your pubspec.yaml:

json_intl:
  class_name: IntlKeys
  default_locale: en
  mangle: false
  debug: false
  builtin: true
  source: assets/intl
  output: lib/intl.dart
  format: true
1
likes
140
pub points
25%
popularity

Publisher

verified publishernfet.net

Flutter Internationalization library based on Json files and mustache replacement strings. Code generator library.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

args, build, dart_style, glob, json_intl, logging, path, yaml

More

Packages that depend on json_intl_gen