Decompose the locale into a normalized tuple.

    The first item is the locale (as lowercase letters) while the second item
    is either the country as lower case either None if no country was supplied.

def split_locale(locale: Text) -> Tuple[Text, Optional[Text]]:
    """
    Decompose the locale into a normalized tuple.

    The first item is the locale (as lowercase letters) while the second item
    is either the country as lower case either None if no country was supplied.
    """

    items = re.split(r'[_\-]', locale.lower(), 1)

    try:
        return items[0], items[1]
    except IndexError:
        return items[0], None