home.dart 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_gen/gen_l10n/app_localizations.dart';
  3. import 'package:provider/provider.dart';
  4. import '../controller/language_change_controller.dart';
  5. class Home extends StatefulWidget {
  6. static const routeName = 'home';
  7. const Home({super.key});
  8. @override
  9. State<Home> createState() => _HomeState();
  10. }
  11. enum Language { english, malayalam }
  12. class _HomeState extends State<Home> {
  13. @override
  14. Widget build(BuildContext context) {
  15. return Scaffold(
  16. appBar: AppBar(
  17. title: Text(AppLocalizations.of(context)!.helloWorld),
  18. backgroundColor: const Color.fromRGBO(240, 86, 39, 1),
  19. actions: [
  20. Consumer<LanguageChangeController>(
  21. builder: (context, provider, child) {
  22. return PopupMenuButton(
  23. onSelected: (Language item) {
  24. if (Language.english.name == item.name) {
  25. provider.changeLanguage(const Locale('en'));
  26. }
  27. if (Language.malayalam.name == item.name) {
  28. provider.changeLanguage(const Locale('ml'));
  29. }
  30. },
  31. itemBuilder: (BuildContext context) =>
  32. <PopupMenuEntry<Language>>[
  33. const PopupMenuItem(
  34. value: Language.english,
  35. child: Text('English'),
  36. ),
  37. const PopupMenuItem(
  38. value: Language.malayalam,
  39. child: Text('Malayalam'),
  40. ),
  41. ]);
  42. })
  43. ],
  44. ),
  45. body: Center(
  46. child: Text(AppLocalizations.of(context)!.helloWorld),
  47. ),
  48. );
  49. }
  50. }