private String parseLanguageFromString(String shortname) { if (StringUtils.isBlank(shortname)) { return ""; } Set<String> langArray = LanguageUtils.KEY_TO_LOCALE_MAP.keySet(); shortname = shortname.replaceAll("(?i)Part [Ii]+", ""); // hardcoded; remove Part II which is no stacking marker; b/c II is a valid iso code :p shortname = StringUtils.split(shortname, '/')[0].trim(); // possibly "de / de" - just take first for (String s : langArray) { try { if (shortname.equalsIgnoreCase(s) || shortname.matches("(?i).*[ _.-]+" + Pattern.quote(s) + "$")) {// ends with lang + delimiter prefix LOGGER.debug("found language '" + s + "' in '" + this.getFilename()); return LanguageUtils.getIso3LanguageFromLocalizedString(s); } } catch (Exception e) { LOGGER.warn("Error parsing subtitle language from locale keyset: " + s, e); } } return ""; }
sub.setLanguage(LanguageUtils.getIso3LanguageFromLocalizedString(lang)); break;
return LanguageUtils.getIso3LanguageFromLocalizedString(language);