Extraction works
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
package com.github.gtache.autosubtitle;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
/**
|
||||
* A list of languages //TODO add more or use Locale if possible?
|
||||
*/
|
||||
public enum Language {
|
||||
AR("arabic", "ar", "ara"),
|
||||
BE("belarusian", "be", "bel"),
|
||||
BG("bulgarian", "bg", "bul"),
|
||||
CS("czech", "cs", "cze"),
|
||||
DA("danish", "da", "dan"),
|
||||
DE("german", "de", "deu", "ger"),
|
||||
EL("greek", "el", "gre"),
|
||||
EN("english", "en", "eng"),
|
||||
ES("spanish", "es", "spa"),
|
||||
FA("persian", "fa", "per"),
|
||||
FI("finnish", "fi", "fin"),
|
||||
FR("french", "fr", "fra", "fre"),
|
||||
HE("hebrew", "he", "heb"),
|
||||
HR("croatian", "hr", "hrv"),
|
||||
ID("indonesian", "id", "ind"),
|
||||
IT("italian", "it", "ita", "gre"),
|
||||
JA("japanese", "ja", "jpn"),
|
||||
KO("korean", "ko", "kor"),
|
||||
LA("latin", "la", "lat"),
|
||||
LB("luxembourgish", "lb", "ltz"),
|
||||
LO("lao", "lo", "lao"),
|
||||
LT("lithuanian", "lt", "lit"),
|
||||
MT("maltese", "mt", "mlt"),
|
||||
MY("myanmar", "my", "mya"),
|
||||
NL("dutch", "nl", "nld"),
|
||||
NO("norwegian", "no", "nor"),
|
||||
PL("polish", "pl", "pol"),
|
||||
PT("portuguese", "pt", "por"),
|
||||
RO("romanian", "ro", "ron"),
|
||||
RU("russian", "ru", "rus"),
|
||||
SK("slovak", "sk", "slo"),
|
||||
SL("slovenian", "sl", "slv"),
|
||||
SV("swedish", "sv", "swe"),
|
||||
TH("thai", "th", "tha"),
|
||||
TR("turkish", "tr", "tur"),
|
||||
UK("ukrainian", "uk", "ukr"),
|
||||
VI("vietnamese", "vi", "vie"),
|
||||
ZH("chinese", "zh", "zho", "chi"),
|
||||
AUTO("auto", "auto", "auto");
|
||||
|
||||
private static final Map<String, Language> STRING_LANGUAGE_MAP;
|
||||
|
||||
static {
|
||||
final Map<String, Language> map = new java.util.HashMap<>();
|
||||
for (final var language : Language.values()) {
|
||||
map.put(language.name().toLowerCase(), language);
|
||||
map.put(language.iso2, language);
|
||||
map.put(language.iso3, language);
|
||||
language.aliases.forEach(s -> map.put(s, language));
|
||||
}
|
||||
STRING_LANGUAGE_MAP = map;
|
||||
}
|
||||
|
||||
private final String englishName;
|
||||
private final String iso2;
|
||||
private final String iso3;
|
||||
private final Set<String> aliases;
|
||||
|
||||
Language(final String englishName, final String iso2, final String iso3, final String... aliases) {
|
||||
this.englishName = requireNonNull(englishName);
|
||||
this.iso2 = requireNonNull(iso2);
|
||||
this.iso3 = requireNonNull(iso3);
|
||||
this.aliases = Set.of(aliases);
|
||||
}
|
||||
|
||||
public String englishName() {
|
||||
return englishName;
|
||||
}
|
||||
|
||||
public String iso2() {
|
||||
return iso2;
|
||||
}
|
||||
|
||||
public String iso3() {
|
||||
return iso3;
|
||||
}
|
||||
|
||||
public static Language getLanguage(final String name) {
|
||||
return STRING_LANGUAGE_MAP.get(name.toLowerCase());
|
||||
}
|
||||
|
||||
public static Language getDefault() {
|
||||
return STRING_LANGUAGE_MAP.getOrDefault(Locale.getDefault().getLanguage(), EN);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user