parsers/lang_codes.go
2022-08-15 13:40:13 +02:00

145 lines
2.5 KiB
Go

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
}