123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import 'package:flutter/material.dart';
- import 'package:userstory2translate/localization/localization.dart';
- import 'package:userstory2translate/router/custom_router.dart';
- import 'package:userstory2translate/router/route_constants.dart';
- import 'package:flutter_localizations/flutter_localizations.dart';
-
- import 'localization/language_constants.dart';
-
- void main() => runApp(MyApp());
-
- class MyApp extends StatefulWidget {
- const MyApp({Key key}) : super(key: key);
- static void setLocale(BuildContext context, Locale newLocale) {
- _MyAppState state = context.findAncestorStateOfType<_MyAppState>();
- state.setLocale(newLocale);
- }
-
- @override
- _MyAppState createState() => _MyAppState();
- }
-
- class _MyAppState extends State<MyApp> {
- Locale _locale;
- setLocale(Locale locale) {
- setState(() {
- _locale = locale;
- });
- }
-
- @override
- void didChangeDependencies() {
- getLocale().then((locale) {
- setState(() {
- this._locale = locale;
- });
- });
- super.didChangeDependencies();
- }
-
- @override
- Widget build(BuildContext context) {
- if (this._locale == null) {
- return Container(
- child: Center(
- child: CircularProgressIndicator(
- valueColor: AlwaysStoppedAnimation<Color>(Colors.blue[800])),
- ),
- );
- } else {
- return MaterialApp(
- debugShowCheckedModeBanner: false,
- title: "Flutter Localization Demo",
- theme: ThemeData(primarySwatch: Colors.blue),
- locale: _locale,
- supportedLocales: [
- Locale("en", "US"),
- Locale("fa", "IR"),
- Locale("es", "SP"),
- Locale("hi", "IN")
- ],
- localizationsDelegates: [
- DemoLocalization.delegate,
- GlobalMaterialLocalizations.delegate,
- GlobalWidgetsLocalizations.delegate,
- GlobalCupertinoLocalizations.delegate,
- ],
- localeResolutionCallback: (locale, supportedLocales) {
- for (var supportedLocale in supportedLocales) {
- if (supportedLocale.languageCode == locale.languageCode &&
- supportedLocale.countryCode == locale.countryCode) {
- return supportedLocale;
- }
- }
- return supportedLocales.first;
- },
- onGenerateRoute: CustomRouter.generatedRoute,
- initialRoute: homeRoute,
- );
- }
- }
- }
|