ez_localization 0.3.0 copy "ez_localization: ^0.3.0" to clipboard
ez_localization: ^0.3.0 copied to clipboard

outdated

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

example/lib/main.dart

import 'package:ez_localization/ez_localization.dart';
import 'package:flutter/material.dart';

/// First plugin test method.
void main() => runApp(_EzLocalizationDemoApp());

/// The demo material app.
class _EzLocalizationDemoApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => EzLocalizationBuilder(
        delegate: EzLocalizationDelegate(
          supportedLocales: [
            Locale('en'),
            Locale('fr'),
            Locale('es'),
          ],
        ),
        builder: (context, localizationDelegate) => MaterialApp(
          title: 'EzLocalization Demo',
          home: Scaffold(
            appBar: AppBar(
              title: Text('EzLocalization Demo'),
            ),
            body: _EzLocalizationDemoWidget(),
          ),
          localizationsDelegates: localizationDelegate.localizationDelegates,
          supportedLocales: localizationDelegate.supportedLocales,
          localeResolutionCallback: localizationDelegate.localeResolutionCallback,
        ),
      );
}

/// The main demo widget.
class _EzLocalizationDemoWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print(context.getString('format', {'name': 'Bond'}));
    print('If your language is set to French or Spanish, here\'s the word "Hello !" in your language :');
    print(context.getString('hello'));
    print('(Otherwise it should display a simple "Hello !".)');
    print('Oh, and here\'s an apple : ' + context.getString('fruits.apple') + '.');

    Locale nextLocale = _getNextLocale(context);
    return Padding(
      padding: EdgeInsets.all(10),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.center,
        mainAxisSize: MainAxisSize.max,
        children: [
          RichText(
            text: TextSpan(
              children: [
                TextSpan(
                  text: context.getString('format', {'name': 'Bond'}) + '\n\n',
                  style: TextStyle(fontSize: 28, fontWeight: FontWeight.bold),
                ),
                TextSpan(text: 'If your language is set to French or Spanish, here\'s the word "Hello !" in your language :\n'),
                TextSpan(
                  text: context.getString('hello'),
                  style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                ),
                TextSpan(text: '\n(Otherwise it should display a simple "Hello !".)\n\n'),
                TextSpan(text: 'Oh, and here\'s an apple : ' + context.getString('fruits.apple') + '.'),
              ],
              style: TextStyle(fontSize: 18, color: Colors.black87),
            ),
            textAlign: TextAlign.center,
          ),
          Padding(
            padding: const EdgeInsets.only(top: 10),
            child: RaisedButton(
              child: Text('Switch to "${nextLocale.languageCode}"'),
              onPressed: () => EzLocalizationBuilder.of(context).changeLocale(nextLocale),
            ),
          ),
        ],
      ),
    );
  }

  /// Returns the next locale to switch on.
  Locale _getNextLocale(BuildContext context) {
    String lang = EzLocalization.of(context).locale.languageCode;
    switch (lang) {
      case 'en':
        return Locale('fr');
      case 'fr':
        return Locale('es');
      case 'es':
        return Locale('en');
    }
    return null;
  }
}
23
likes
0
pub points
83%
popularity

Publisher

verified publisherskyost.eu

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

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, flutter_localizations

More

Packages that depend on ez_localization