Search packages, repositories and app categories

Package detailsv1.1.1

ez_localization

Setup a powerful localization system in your flutter application quickly and easily.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
193
Likes
23
Pub points
150

Install package

flutter pub add ez_localization

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

ez_localization is a Flutter package that simplifies the setup of a robust localization system, enabling developers to quickly implement internationalization in their applications. It supports multiple languages and provides an intuitive API for managing translations across Android, iOS, Web, macOS, Windows, and Linux. With minimal configuration, it allows seamless switching between locales and handles dynamic content efficiently. The package is ideal for apps targeting global audiences, reducing boilerplate code while maintaining flexibility and scalability.

Use cases

  • Multi-language app support
  • Easy translation management
  • Dynamic locale switching
  • Cross-platform internationalization
  • Simplified i18n setup
  • App localization for global users

Key features

  • Minimal setup required
  • Supports all major platforms
  • Built-in locale switching
  • Clean and readable translation syntax
  • Extensible translation file structure
  • Automatic fallback to default language

Suitable for

  • Developers building multilingual apps
  • Teams managing translation workflows
  • Projects requiring fast i18n integration
  • Apps targeting international markets
  • Flutter beginners learning localization
  • Projects with frequent language updates

Considerations

  • Requires proper translation file organization
  • Limited built-in translation editing tools
  • Manual handling of complex plural forms
  • Depends on correct locale naming conventions
  • No built-in translation storage or sync
  • Best used with structured translation files

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

EzLocalization

This package allows you to setup a powerful localization system with ease and in only a few minutes.

Features

Here are some features:

  • Easy, lightweight, open-source.
  • MIT licensed.
  • Easily extensible.

Getting started

It only takes a few steps in order to get EzLocalization to work !
First, add the following code to your MaterialApp definition (usually in main.dart) :

EzLocalizationDelegate ezLocalization = EzLocalizationDelegate(supportedLocales: [Locale('en'), Locale('fr')]); // The first language is your default language.

return MaterialApp(
  // ...
  localizationsDelegates: ezLocalization.localizationDelegates,
  supportedLocales: ezLocalization.supportedLocales,
  localeResolutionCallback: ezLocalization.localeResolutionCallback,
);

Then you create a folder named languages in your assets directory with the defined languages in it. An example structure could be :

assets
└── languages
    ├── en.json
    └── fr.json

Here's an example of en.json :

{
  "hello": "Hello !"
}

And a translated fr.json :

{
  "hello": "Bonjour !"
}

Don't forget to add the assets in your pubspec.yml :

flutter:
  # ...
  assets:
    - "assets/languages/"

That's it ! To get your string you only have to call EzLocalization.of(context)!.get('hello').

Advanced

Extension method

With the extension method, it's even easier to get a localized string ! The only thing you have to do is to replace EzLocalization.of(context)!.get('key') by context.getString('key').

You may have to manually import EzLocalization in your file.

Builder widget

EzLocalization provides a builder widget called EzLocalizationBuilder. You can use it as such :

const EzLocalizationBuilder(
  delegate: EzLocalizationDelegate(
    supportedLocales: [
      Locale('en'),
      Locale('fr'),
      Locale('es'),
    ],
  ),
  builder: (context, localizationDelegate) => MaterialApp(
    title: 'Beautifully localized app',
    home: MyMainWidget(),
    localizationsDelegates: localizationDelegate.localizationDelegates,
    supportedLocales: localizationDelegate.supportedLocales,
    localeResolutionCallback: localizationDelegate.localeResolutionCallback,
  ),
);

It has two advantages :

  • It helps reducing boilerplate.
  • You can dynamically change the current locale using EzLocalizationBuilder.of(context)!.changeLocale(yourLocale).
Nested strings

You can nest translation strings as such :

{
  "tabs": {
    "home": "Home"
  }
}

And it can be access using EzLocalization.of(context)!.get('tabs.home').

Format arguments

In your translation string, you may add arguments using {} :

{
  "greeting": "Hello {target}, my name is {me} !"
}

You can then fill them with EzLocalization.of(context)!.get('greeting', {'target': 'John', 'me': 'Bob'}). Also, instead of a map you can pass a list and get your arguments by their indexes.

Change the files path

You can change from the default path of assets/languages/$languageCode.json by passing getPathFunction to EzLocalizationDelegate. You will then have to provide a valid asset path according to the specified locale.

Don't forget to update your assets entry in your pubspec !

Updating the iOS app bundle

See the official flutter.dev documentation about updating the iOS app bundle.

Contributing

You have a lot of options to contribute to this project ! You can :

Categories

Source repository

Projects using this package

No data available yet.