language_helper 0.0.1+1 copy "language_helper: ^0.0.1+1" to clipboard
language_helper: ^0.0.1+1 copied to clipboard

outdated

Make it easier for you to implement multiple languages into your app.

Language Helper #

Make it easier for you to implement multiple languages into your app.

Usage #

Create the data:

LanguageData data = {
  LanguageCodes.en: {
    'Hello': 'Hello',
    'Change language': 'Change language',
  },
  LanguageCodes.vi: {
    'Hello': 'Xin Chào',
    'Change language': 'Thay đổi ngôn ngữ',
  }
};

Initialize the data:

LanguageHelper.instance.initial(
    data: data,
    defaultCode: LanguageCodes.en, // Optional. Default is set to the first language of [data]
    isDebug: true, // Print debug log. Default is set to false
);

Translate text:

final text = LanguageHelper.instance.translate('Hello');

Use extension:

final text = 'Hello'.tr;

Use builder to rebuild the widgets automatically on change:

  • For all widget in your app:
  @override
  Widget build(BuildContext context) {
    return LanguageNotifier(builder: (context) {
      return MaterialApp(
        home: Scaffold(
          appBar: AppBar(
            title: Text('Hello'.tr),
          ),
          body: Center(
            child: Column(
              children: [
                Text('Hello'.tr),
                ElevatedButton(
                  onPressed: () {
                    LanguageHelper.instance.change(LanguageCodes.vi);
                  },
                  child: Text('Change language'.tr),
                ),
              ],
            ),
          ),
        ),
      );
    });
  }
  • For specific widget:
LanguageNotifier(
    builder: (context) {
        return Text('Hello'.tr);
    },
),

No matter how many LanguageNotifier that you use, the plugin only rebuilds the outest (the root) widget of LanguageNotifier, so it improves a lot performance. And all LanguageNotifier widgets will be rebuilt at the same time.

Additional Information #

  • The LanguageCodes contains all the languages with additional information like name in English (name) and name in native language (nativeName).
  • This is the very first state so it may contain issues.
10
likes
0
pub points
75%
popularity

Publisher

verified publisherlamnhan.dev

Make it easier for you to implement multiple languages into your app.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on language_helper