save before flutter upgrade
This commit is contained in:
44
lib/internationalization/internationalization.dart
Normal file
44
lib/internationalization/internationalization.dart
Normal file
@@ -0,0 +1,44 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class AppLocalizations {
|
||||
AppLocalizations(this.locale);
|
||||
|
||||
final Locale locale;
|
||||
|
||||
static AppLocalizations of(BuildContext context) =>
|
||||
Localizations.of<AppLocalizations>(context, AppLocalizations)!;
|
||||
|
||||
static List<String> languages() => ['en'];
|
||||
|
||||
String get languageCode => locale.languageCode;
|
||||
int get languageIndex => languages().contains(languageCode)
|
||||
? languages().indexOf(languageCode)
|
||||
: 0;
|
||||
|
||||
String getText(String key) =>
|
||||
(kTranslationsMap[key] ?? {})[locale.languageCode] ?? '';
|
||||
|
||||
String getVariableText({
|
||||
String enText = '',
|
||||
}) =>
|
||||
[enText][languageIndex];
|
||||
}
|
||||
|
||||
class AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
|
||||
const AppLocalizationsDelegate();
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) =>
|
||||
AppLocalizations.languages().contains(locale.languageCode);
|
||||
|
||||
@override
|
||||
Future<AppLocalizations> load(Locale locale) =>
|
||||
SynchronousFuture<AppLocalizations>(AppLocalizations(locale));
|
||||
|
||||
@override
|
||||
bool shouldReload(AppLocalizationsDelegate old) => false;
|
||||
}
|
||||
|
||||
final kTranslationsMap =
|
||||
<Map<String, Map<String, String>>>[].reduce((a, b) => a..addAll(b));
|
||||
Reference in New Issue
Block a user