gen_i18n 1.0.3 copy "gen_i18n: ^1.0.3" to clipboard
gen_i18n: ^1.0.3 copied to clipboard

Library to help you add internationalization in your project dart generating classes and translation files.

gen_i18n #

Add internationalization to your dart project

Installation #

dependencies:
    flutter_localizations:
        sdk: flutter 

dev_dependencies:
    gen_i18n: ^1.0.3

flutter: 
  assets:
    - assets/i18n/locale/

Usage #

Running this command will result in the creation of the following files:

  • i18n.dart : a dart file will be generated in lib/i18n/. This dart file will be responsible for interpreting the translation files
{
  "customMessage": "Write is here your message"
}
  • locale : directory where the translation files live. They will be generated in the folder assets/i18n/locale

Note: The name of a translation file starts without the key i18n_ example: i18n_en.json

flutter pub run gen_i18n:initialize

Supported arguments:

Argument Description
--locale By definition only one translation file is generated i18n_en.json. If you want to create more translation files for other languages just send the arguments. Example: flutter pub run gen_i18n:initialize --locale-pt-es

Example #

Modifies the main method

Future<void> main() async {
  /// This is required
  WidgetsFlutterBinding.ensureInitialized();
  
  /// Initial locale is critical to initializing the internationalization feature
  await I18n.initialize(
      defaultLocale: Locale('en'),   /// This is required
      supportLocales: [Locale('en'),Locale('es')]  /// This is optional
  );
  ...
}
MaterialApp( 
      locale: I18n.currentLocate,
      supportedLocales: I18n.supportedLocales,
      localizationsDelegates: const [
        const I18nDelegate(),
        GlobalMaterialLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate
      ],
      ...
    )

To translate text, simply enter the key by calling the method I18n.getValue('customMessage') or 'customMessage'.translate

Text(I18n.getValue('customMessage'))
Text('customMessage'.translate)

If you want to change the current locate simply call the await I18n.updateLocate(Locale('es')) method.

4
likes
150
points
65
downloads

Publisher

verified publisheredvaldomartins.dev

Weekly Downloads

Library to help you add internationalization in your project dart generating classes and translation files.

Repository (GitHub)

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

colorize, path

More

Packages that depend on gen_i18n