package parsers import "strings" // langSynonyms converts all irregular lang codes to ISO 639-1 var langSynonyms = map[string]string{ // english "eng": "en", // Erai-Raws | ffprobe "us": "en", // Erai-Raws // portuguese "por-br": "pt", // Erai-Raws "por": "pt", // Erai-Raws | ffprobe "br": "pt", // Erai-Raws // spanish "spa-la": "es", // Erai-Raws "spa": "es", // Erai-Raws | ffprobe "mx": "es", // Erai-Raws // arabic "ara": "ar", // Erai-Raws | ffprobe "sa": "ar", // Erai-Raws // french "fre": "fr", // Erai-Raws | ffprobe // german "ger": "de", // Erai-Raws | ffprobe // italian "ita": "it", // Erai-Raws | ffprobe // finnish "fin": "fi", // ffprobe | ffprobe // russian "rus": "ru", // Erai-Raws // japanese "jpn": "ja", // Erai-Raws | ffprobe "jp": "ja", // Erai-Raws // polish "pol": "pl", // Erai-Raws | ffprobe // dutch "dut": "nl", // Erai-Raws | ffprobe // norwegian "nob": "no", // Erai-Raws | ffprobe // turkish "tur": "tr", // Erai-Raws | ffprobe // swedish "swe": "sv", // Erai-Raws | ffprobe "se": "sv", // Erai-Raws // greek "gre": "el", // Erai-Raws | ffprobe "gr": "el", // Erai-Raws // hebrew "heb": "he", // Erai-Raws | ffprobe "il": "he", // Erai-Raws // romanian "rum": "ro", // Erai-Raws "rom": "ro", // ffprobe // indonesian "ind": "id", // Erai-Raws // thai "tha": "th", // Erai-Raws | ffprobe // korean "kor": "ko", // Erai-Raws | ffprobe "kr": "ko", // Erai-Raws // danish "dan": "da", // Erai-Raws | ffprobe "dk": "da", // Erai-Raws // chinese (simplified & traditional) "chi": "zh", // Erai-Raws | ffprobe "cn": "zh", // Erai-Raws // bulgarian "bul": "bg", // Erai-Raws | ffprobe // vietnamese "vie": "vi", // Erai-Raws "vn": "vi", // Erai-Raws // hindi "hin": "hi", // Erai-Raws "in": "hi", // Erai-Raws // tamil "tel": "ta", // Erai-Raws "lk": "ta", // Erai-Raws // ukrainian "ukr": "uk", // Erai-Raws "ua": "uk", // Erai-Raws // hungarian "hun": "hu", // Erai-Raws // czech "ces": "cs", // Erai-Raws "cz": "cs", // Erai-Raws // croatian "hrv": "hr", // Erai-Raws // malaysian "may": "ms", // Erai-Raws "my": "ms", // Erai-Raws // slovakian "slk": "sk", // Erai-Raws // filipino "fil": "tl", // Erai-Raws "ph": "tl", // Erai-Raws } // ParseLanguage converts irregular language codes to ISO 639-1 func ParseLanguage(str string) string { if code, ok := langSynonyms[strings.ToLower(str)]; ok { return code } return strings.ToLower(str) } // ParseLanguages converts multiple irregular language codes to ISO 639-1. // It simply calls ParseLanguage for each language code func ParseLanguages(langCodes []string) []string { codes := make([]string, 0, len(langCodes)) for _, irregularLangCode := range langCodes { codes = append(codes, ParseLanguage(irregularLangCode)) } return codes }