import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:stacked/stacked.dart'; class LocalizationService with ListenableServiceMixin { // Initialization localizationService() { listenToReactiveValues([_selectedLanguage]); } // Languages Map _selectedLanguage = { 'code': 'EN', 'language': 'English' }; Map get selectedLanguage => _selectedLanguage; final List> _languages = [ {'code': 'አማ', 'language': 'አማርኛ'}, {'code': 'EN', 'language': 'English'}, ]; List> get languages => _languages; bool isSelectedLanguage(String title) => _selectedLanguage['language'] == title; Future setSelectedLanguage( {required BuildContext context, required Map title}) async { _selectedLanguage = title; if (title['code'] == 'አማ') { await setAmharicLanguage(context); } else { await setAmharicLanguage(context); } notifyListeners(); } Future setAmharicLanguage(BuildContext context) async => await context.setLocale(const Locale('am')); Future setEnglishLanguage(BuildContext context) async => await context.setLocale(const Locale('en')); }