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.
49 lines
1.6 KiB
Dart
49 lines
1.6 KiB
Dart
|
6 years ago
|
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;
|
||
|
|
}
|