selectLocale static method

TDeskAppLocale? selectLocale(
  1. String localeRaw
)

Implementation

static TDeskAppLocale? selectLocale(String localeRaw) {
  final match = _localeRegex.firstMatch(localeRaw);
  TDeskAppLocale? selected;
  if (match != null) {
    final language = match.group(1);
    final country = match.group(5);
    final script = match.group(3);
    // match exactly
    selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
        (supported) =>
            supported?.languageTag == localeRaw.replaceAll('_', '-'),
        orElse: () => null);

    if (selected == null && script != null) {
      // match script
      selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
          (supported) => supported?.languageTag.contains(script) == true,
          orElse: () => null);
    }

    if (selected == null && language != null) {
      // match language
      selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
          (supported) => supported?.languageTag.startsWith(language) == true,
          orElse: () => null);
    }

    if (selected == null && country != null) {
      // match country
      selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
          (supported) => supported?.languageTag.contains(country) == true,
          orElse: () => null);
    }
  }
  return selected;
}