package parsers import "strings" // langSynonyms converts all irregular lang codes to ISO 639-1 var langSynonyms = map[string]string{ // english "ENG": "en", // Erai-Raws "US": "en", // Erai-Raws // portuguese "POR-BR": "pt", // Erai-Raws "POR": "pt", // Erai-Raws "BR": "pt", // Erai-Raws // spanish "SPA-LA": "es", // Erai-Raws "SPA": "es", // Erai-Raws "MX": "es", // Erai-Raws // arabic "ARA": "ar", // Erai-Raws "SA": "ar", // Erai-Raws // french "FRE": "fr", // Erai-Raws // german "GER": "de", // Erai-Raws // italian "ITA": "it", // Erai-Raws // russian "RUS": "ru", // Erai-Raws // japanese "JPN": "ja", // Erai-Raws "JP": "ja", // Erai-Raws // polish "POL": "pl", // Erai-Raws // dutch "DUT": "nl", // Erai-Raws // norwegian "NOB": "no", // Erai-Raws // turkish "TUR": "tr", // Erai-Raws // swedish "SWE": "sv", // Erai-Raws "SE": "sv", // Erai-Raws // greek "GRE": "el", // Erai-Raws "GR": "el", // Erai-Raws // hebrew "HEB": "he", // Erai-Raws "IL": "he", // Erai-Raws // romanian "RUM": "ro", // Erai-Raws // indonesian "IND": "id", // Erai-Raws // thai "THA": "th", // Erai-Raws // korean "KOR": "ko", // Erai-Raws "KR": "ko", // Erai-Raws // danish "DAN": "da", // Erai-Raws "DK": "da", // Erai-Raws // chinese (simplified & traditional) "CHI": "zh", // Erai-Raws "CN": "zh", // Erai-Raws // bulgarian "BUL": "bg", // Erai-Raws // 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[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 }