locale property

Locale locale

Get current code as Locale

Implementation

Locale get locale {
  final localeList = code.split('_');

  switch (localeList.length) {
    case 1:
      return Locale(localeList[0]);
    case 2:
      // localeList[1] is the country code if all characters are upper cases.
      if (localeList[1] == localeList[1].toUpperCase()) {
        return Locale(localeList[0], localeList[1]);
      }
      return Locale.fromSubtags(
        languageCode: localeList[0],
        scriptCode: localeList[1],
      );
    default:
      return Locale.fromSubtags(
        languageCode: localeList[0],
        scriptCode: localeList[1],
        countryCode: localeList[2],
      );
  }
}