import 'dart:async'; import 'package:flutter/foundation.dart' show SynchronousFuture; import 'package:flutter/material.dart'; class TranslationBase { TranslationBase(this.locale); final Locale locale; static TranslationBase of(BuildContext context) { return Localizations.of(context, TranslationBase); } static Map> _localizedValues = { 'dashboardScreenToolbarTitle': {'ar': 'الرئيسة', 'en': 'Home'}, 'settings': {'en': 'Settings', 'ar': 'الاعدادات'}, 'language': {'en': 'App Language', 'ar': 'لغة التطبيق'}, 'lanEnglish': {'en': 'English', 'ar': 'English'}, 'lanArabic': {'en': 'العربية', 'ar': 'العربية'} }; String get dashboardScreenToolbarTitle => _localizedValues['dashboardScreenToolbarTitle'][locale.languageCode]; String get settings => _localizedValues['settings'][locale.languageCode]; String get language => _localizedValues['language'][locale.languageCode]; String get lanEnglish => _localizedValues['lanEnglish'][locale.languageCode]; String get lanArabic => _localizedValues['lanArabic'][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { const TranslationBaseDelegate(); @override bool isSupported(Locale locale) => ['en', 'ar'].contains(locale.languageCode); @override Future load(Locale locale) { return SynchronousFuture(TranslationBase(locale)); } @override bool shouldReload(TranslationBaseDelegate old) => false; }