Files
energymedia_content_manager/lib/internationalization/internationalization.dart
2025-07-15 16:40:14 -07:00

45 lines
1.2 KiB
Dart

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));