package nmslib import ( "encoding/csv" "os" "strings" ) type Translate struct { Lang string } func (t Translate) ToEng(word string) (translation string) { return translate2english(word, langFile(t.Lang)) } func langFile(lang string) [][]string { filepath := NmsTemp + "/assets/lang/" + lang + "-lang.csv" csvFile, err := os.Open(filepath) if err != nil { panic(err) } defer csvFile.Close() lines, err := csv.NewReader(csvFile).ReadAll() if err != nil { panic(err) } return lines } func translate2english(w string, knowledgeStone [][]string) string { var rt string for _, line := range knowledgeStone { engl := line[0] alien := line[1] acap := line[2] alcap := line[3] if strings.EqualFold(w, alien) { rt = strings.ToLower(engl) } else if strings.EqualFold(w, acap) { rt = strings.Title(engl) } else if strings.EqualFold(w, alcap) { rt = strings.ToUpper(engl) } else { rt = "*\\Kzzzzzzt\\*" } } return rt } func translate2game(source string, target string) string { var sourceCsv [][]string var targetCsv [][]string if source == "english" { sourceCsv = langFile(target) targetCsv = sourceCsv } else { sourceCsv = langFile(source) targetCsv = langFile(target) } }