gettext_i18n 1.0.5 icon indicating copy to clipboard operation
gettext_i18n: ^1.0.5 copied to clipboard

This package helps internationalizing a Flutter application.

Flutter i18n with gettext #

This package helps internationalizing a Flutter application.

It is based on gettext and gettext_parser.

Features #

  • Supports from placeholders in the message keys

Usage #

Add this package, and flutter_localizations, to pubspec.yaml:

flutter pub add gettext_i18n
flutter pub add flutter_localizations --sdk=flutter

In pubspec.yaml, add assets/i18n/ as an asset folder:

flutter:
  assets:
    - assets/i18n/

Optionnal: in that folder, place your translation files:

$ ls assets/i18n/
en.po
fr_CH.po
fr.po

In your application file, declare supported locales, and initialize translations:

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        ...
        home: const HomePage(),
        supportedLocales: const [
            Locale('en'),
            Locale('fr'),
            Locale('fr', 'CH'),
        ],
        localizationsDelegates: [
            GettextLocalizationsDelegate(defaultLanguage: 'en'),
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
        ],
    );
  }
}

In files where you want to translate a string :

import 'package:gettext_i18n/gettext_i18n.dart';

var translatedString = context.t('{2} ! Pi is greater than {0} and smaller than {1}', args: [3, 4, 'Hello']);

Additional information #

.po files can be edited by hand, but it's preferable to use an editor or an online service to manage them.

2
likes
140
pub points
84%
popularity

Publisher

verified publisher iconfrenchguy.ch

This package helps internationalizing a Flutter application.

Repository (GitHub)

Documentation

API reference

License

Icon for licenses.BSD-3-Clause (LICENSE)

Dependencies

flutter, flutter_localizations, gettext, gettext_parser

More

Packages that depend on gettext_i18n