language_helper 0.0.2 copy "language_helper: ^0.0.2" to clipboard
language_helper: ^0.0.2 copied to clipboard

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);
    },
),

You can analyze the missing texts for all language with this function:

LanguageHelper.instance.analyze();

Here is the result from the Example:

flutter: [Language Helper]
flutter: [Language Helper] ==================================================
flutter: [Language Helper]
flutter: [Language Helper] Analyze all languages to find the missing texts...
flutter: [Language Helper] Results:
flutter: [Language Helper]   LanguageCodes.en:
flutter: [Language Helper]     This text is missing in `en`
flutter: [Language Helper]
flutter: [Language Helper]   LanguageCodes.vi:
flutter: [Language Helper]     This text is missing in `vi`
flutter: [Language Helper]
flutter: [Language Helper] ==================================================
flutter: [Language Helper]

Additional Information #

  • 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.
  • 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 bugs or issues.
5
likes
0
pub points
66%
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