24 lines
643 B
Dart
Executable File
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',
|
|
};
|
|
}
|
|
}
|