145 lines
2.5 KiB
Go
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
|
|
}
|