localeFromLanguageTag function

Locale localeFromLanguageTag(
  1. String tag
)

pt-BR → Locale('pt', 'BR'), zh-Hans → a script subtag.

Implementation

Locale localeFromLanguageTag(String tag) {
  final List<String> parts = tag.split(RegExp('[-_]'));
  if (parts.length == 1) return Locale(parts.first);
  if (parts.length == 2) {
    // A four-letter subtag is a script, not a region.
    return parts[1].length == 4
        ? Locale.fromSubtags(languageCode: parts[0], scriptCode: parts[1])
        : Locale(parts[0], parts[1]);
  }
  return Locale.fromSubtags(
    languageCode: parts[0],
    scriptCode: parts[1].length == 4 ? parts[1] : null,
    countryCode: parts.last,
  );
}