Skip to content

Instantly share code, notes, and snippets.

@thanhdatvo
Created September 24, 2018 15:13
Show Gist options
  • Save thanhdatvo/f7176133abb635042199f0ab6af83aba to your computer and use it in GitHub Desktop.
Save thanhdatvo/f7176133abb635042199f0ab6af83aba to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:flutter_i18n_plugin/generated/i18n.dart';
void main() async {
runApp(App());
}
class App extends StatefulWidget {
@override
_AppState createState() => _AppState();
}
class _AppState extends State<App> {
String _locale = 'en';
onChangeLanguage() {
if (_locale == 'en') {
setState(() {
_locale = 'fr';
});
} else {
setState(() {
_locale = 'en';
});
}
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
locale: Locale(_locale, ""),
localizationsDelegates: [S.delegate],
supportedLocales: S.delegate.supportedLocales,
localeResolutionCallback:
S.delegate.resolution(fallback: new Locale("en", "")),
home: AppBody(this.onChangeLanguage));
}
}
class AppBody extends StatelessWidget {
final VoidCallback onChangeLanguage;
AppBody(this.onChangeLanguage);
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(S.of(context).hello),
),
body: new Center(
child: new Text(S.of(context).greetTo('Nina')),
),
floatingActionButton: new FloatingActionButton(
child: new Icon(Icons.language), onPressed: onChangeLanguage));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment