import 'package:external_repos/external_repos.dart'; import 'package:flutter/material.dart'; extension Translation on BuildContext { T translate(T en, T ar) => switch (language) { LanguageLocale.enUS => en, LanguageLocale.arAE => ar, }; T translateFromTuple(({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', }; } }