update _map_locales()

The `_map_locales()` function takes the strings from the Locale objects as-is whereas `get_locale(name)` lowers the string before checking the collection. This causes an issue with `ArabicLocale` as `ArabicLocale.names = ['ar', 'ar_EG']` as `get_locale('ar_EG')` raises an exception when it shouldn't.