package im.actor.runtime.intl.plurals;
import java.util.HashMap;
import java.util.Map;
public class PluralFactory {
private static Map<String, PluralEngine> ALL_ENGINES = new HashMap<>();
static {
addRules(new String[]{"bem", "brx", "da", "de", "el", "en", "eo", "es", "et", "fi", "fo", "gl", "he", "iw", "it", "nb",
"nl", "nn", "no", "sv", "af", "bg", "bn", "ca", "eu", "fur", "fy", "gu", "ha", "is", "ku",
"lb", "ml", "mr", "nah", "ne", "om", "or", "pa", "pap", "ps", "so", "sq", "sw", "ta", "te",
"tk", "ur", "zu", "mn", "gsw", "chr", "rm", "pt"}, new Plural_One());
addRules(new String[]{"cs", "sk"}, new Plural_Czech());
addRules(new String[]{"ff", "fr", "kab"}, new Plural_French());
addRules(new String[]{"hr", "ru", "sr", "uk", "be", "bs", "sh"}, new Plural_Balkan());
addRules(new String[]{"lv"}, new Plural_Latvian());
addRules(new String[]{"lt"}, new Plural_Lithuanian());
addRules(new String[]{"pl"}, new Plural_Polish());
addRules(new String[]{"ro", "mo"}, new Plural_Romanian());
addRules(new String[]{"sl"}, new Plural_Slovenian());
addRules(new String[]{"ar"}, new Plural_Arabic());
addRules(new String[]{"mk"}, new Plural_Macedonian());
addRules(new String[]{"cy"}, new Plural_Welsh());
addRules(new String[]{"br"}, new Plural_Breton());
addRules(new String[]{"lag"}, new Plural_Langi());
addRules(new String[]{"shi"}, new Plural_Tachelhit());
addRules(new String[]{"mt"}, new Plural_Maltese());
addRules(new String[]{"ga", "se", "sma", "smi", "smj", "smn", "sms"}, new Plural_Two());
addRules(new String[]{"ak", "am", "bh", "fil", "tl", "guw", "hi", "ln", "mg", "nso", "ti", "wa"}, new Plural_Zero());
addRules(new String[]{"az", "bm", "fa", "ig", "hu", "ja", "kde", "kea", "ko", "my", "ses", "sg", "to",
"tr", "vi", "wo", "yo", "zh", "bo", "dz", "id", "jv", "ka", "km", "kn", "ms", "th"}, new Plural_None());
}
private static void addRules(String[] languages, PluralEngine rules) {
for (String language : languages) {
ALL_ENGINES.put(language, rules);
}
}
public static PluralEngine getPluralForLanguage(String language) {
return ALL_ENGINES.get(language.toLowerCase());
}
}