iampopal / flutter_locales

MIT License
6 stars 2 forks source link

flutter_locales

Localize your Flutter app to multiple locales within seconds

Why Flutter Locales

✅ Easily Localize your app
✅ Change App Locale within the app
✅ Get Last Changed locale on App starts
✅ Save Locale Language After changed buy LocaleNotifier
✅ Get Translation with LocaleText('key') Widget

Example App

Look at a Simple app at GitHub.

Example App

Video Tutorial

Watch the video

1) Create locales assets

Create an assets/locales folder at the root of your project and add your locales json files. like: Example app assets/locales

2) Include package and assets

Include latest dependency of flutter_locales

dependencies:
flutter:
sdk: flutter
flutter_locales:

Include assets/locales/ folder

flutter:
uses-material-design: true
assets:
- assets/locales/

3) Initialize app

Replace your main app with


void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Locales.init(['en', 'fa', 'ps']); // get last saved language
// remove await if you want to get app default language

runApp(MyApp()); }

  * `['en', 'fa', 'ps']` are language codes of `.json` files located in located in `assets/locales` folder   
  * You can replace these languages with your languages

> Wrap your `MaterialApp` with `LocaleBuilder` then provide locale to app
```dart
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return LocaleBuilder(
      builder: (locale) => MaterialApp(
        title: 'Flutter Locales',
        localizationsDelegates: Locales.delegates,
        supportedLocales: Locales.supportedLocales,
        locale: locale,
        home: HomeScreen(),
      ),
    );
  }
}

Locale Text

LocaleText Widget Use to translate a key

LocaleText(`welcome`);

Locale String

// with extension context.localeString('welcome');


## Change App Locale
To change app locale language
```dart
Locales.change(context, 'fa');

//with extension
context.changeLocale('fa');

Current Locale Language

//with extension context.currentLocale;



## Getting Started
This project is a starting point for a Dart
[package](https://flutter.dev/developing-packages/),
a library module containing code that can be shared easily across
multiple Flutter or Dart projects.

For help getting started with Flutter, view our 
[online documentation](https://flutter.dev/docs), which offers tutorials, 
samples, guidance on mobile development, and a full API reference.