in src/main/java/org/apache/sling/i18n/impl/JcrResourceBundleProvider.java [683:708]
static Locale toLocale(String localeString) {
if (localeString == null || localeString.length() == 0) {
return Locale.getDefault();
}
// support BCP 47 compliant strings as well (using a different separator "-" instead of "_")
localeString = localeString.replaceAll("-", "_");
// check language and country
final String[] parts = localeString.split("_");
if (parts.length == 0) {
return Locale.getDefault();
}
// at least language is available
String lang = getValidLanguage(parts[0]);
if (parts.length == 1) {
return new Locale(lang);
}
Locale localeWithBuilder = createLocaleWithBuilder(parts, lang);
if (localeWithBuilder != null) {
return localeWithBuilder;
}
return createLocaleWithConstructor(lang, parts);
}