You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doctor_app_flutter/lib/util/translations_delegate_base....

49 lines
1.6 KiB
Dart

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<TranslationBase>(context, TranslationBase);
}
static Map<String, Map<String, String>> _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<TranslationBase> {
const TranslationBaseDelegate();
@override
bool isSupported(Locale locale) => ['en', 'ar'].contains(locale.languageCode);
@override
Future<TranslationBase> load(Locale locale) {
return SynchronousFuture<TranslationBase>(TranslationBase(locale));
}
@override
bool shouldReload(TranslationBaseDelegate old) => false;
}