package nmslib import ( "encoding/csv" "fmt" "io/ioutil" "os" "strings" ) /* KorvaxWord - set up structure of a word iteration */ type KorvaxWord struct { english string korvax string kwcaps string kwallcaps string } func Korvax2Eng(kvwrd string) string { data, err := Asset("tmp.nmslib/korvax-lang.csv") if err != nil { panic(err) } _, err2 := os.Stat("tmp.nmslib/") if os.IsNotExist(err2) { errDir := os.MkdirAll("tmp.nmslib/", 0755) if errDir != nil { panic(errDir) } } err = ioutil.WriteFile("tmp.nmslib/korvax-lang.csv", []byte(data), 0644) csvFile, err := os.Open("tmp.nmslib/korvax-lang.csv") if err != nil { fmt.Println(err) } defer csvFile.Close() CsvLines, err := csv.NewReader(csvFile).ReadAll() if err != nil { fmt.Println(err) } for _, line := range CsvLines { klang := KorvaxWord{ english: line[0], korvax: line[1], kwcaps: line[2], kwallcaps: line[3], } if kvwrd == klang.korvax { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return klang.english } else if kvwrd == klang.korvax { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return strings.Title(strings.ToLower(klang.english)) } else if kvwrd == klang.kwallcaps { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return strings.ToUpper(klang.english) } } // remove recource folder to keep it clean errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return "*\\Kzzzzzzt\\*" // word not found default } /* Eng2Korvax - Convert (some) english words to Korvax */ func Eng2Korvax(enwrd string) string { data, err := Asset("tmp.nmslib/korvax-lang.csv") if err != nil { panic(err) } _, err2 := os.Stat("tmp.nmslib/") if os.IsNotExist(err2) { errDir := os.MkdirAll("tmp.nmslib/", 0755) if errDir != nil { panic(errDir) } } err = ioutil.WriteFile("tmp.nmslib/korvax-lang.csv", []byte(data), 0644) csvFile, err := os.Open("tmp.nmslib/korvax-lang.csv") if err != nil { fmt.Println(err) } defer csvFile.Close() CsvLines, err := csv.NewReader(csvFile).ReadAll() if err != nil { fmt.Println(err) } for _, line := range CsvLines { klang := KorvaxWord{ english: line[0], korvax: line[1], kwcaps: line[2], kwallcaps: line[3], } if enwrd == klang.english { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return klang.korvax } } // remove recource folder to keep it clean errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return "*\\Kzzzzzzt\\*" // word not found default }