forked from eatvio/eatvio_app
New screen names
This commit is contained in:
43
lib/localization/app_localization.dart
Normal file
43
lib/localization/app_localization.dart
Normal file
@@ -0,0 +1,43 @@
|
||||
import 'en_us/en_us_translations.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import '../core/app_export.dart';
|
||||
|
||||
class AppLocalization {
|
||||
AppLocalization(this.locale);
|
||||
|
||||
Locale locale;
|
||||
|
||||
static final Map<String, Map<String, String>> _localizedValues = {'en': enUs};
|
||||
|
||||
static AppLocalization of() {
|
||||
return Localizations.of<AppLocalization>(
|
||||
NavigatorService.navigatorKey.currentContext!, AppLocalization)!;
|
||||
}
|
||||
|
||||
static List<String> languages() => _localizedValues.keys.toList();
|
||||
String getString(String text) =>
|
||||
_localizedValues[locale.languageCode]![text] ?? text;
|
||||
}
|
||||
|
||||
class AppLocalizationDelegate extends LocalizationsDelegate<AppLocalization> {
|
||||
const AppLocalizationDelegate();
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) =>
|
||||
AppLocalization.languages().contains(locale.languageCode);
|
||||
|
||||
//Returning a SynchronousFuture here because an async "load" operation
|
||||
//cause an async "load" operation
|
||||
@override
|
||||
Future<AppLocalization> load(Locale locale) {
|
||||
return SynchronousFuture<AppLocalization>(AppLocalization(locale));
|
||||
}
|
||||
|
||||
@override
|
||||
bool shouldReload(AppLocalizationDelegate old) => false;
|
||||
}
|
||||
|
||||
extension LocalizationExtension on String {
|
||||
String get tr => AppLocalization.of().getString(this);
|
||||
}
|
||||
Reference in New Issue
Block a user