uaestats_fe/lib/domain/use_cases/language.dart
2026-05-16 11:31:32 +05:30

24 lines
643 B
Dart
Executable File

import 'package:external_repos/external_repos.dart';
import 'package:flutter/material.dart';
extension Translation on BuildContext {
T translate<T>(T en, T ar) => switch (language) {
LanguageLocale.enUS => en,
LanguageLocale.arAE => ar,
};
T translateFromTuple<T>(({T en, T ar}) tuple) => translate(
tuple.en,
tuple.ar,
);
LanguageLocale get language {
final languageCode = Localizations.localeOf(this).languageCode;
return switch (languageCode) {
'en' => LanguageLocale.enUS,
'ar' => LanguageLocale.arAE,
_ => throw '$languageCode is not supported',
};
}
}