Updates and Features

This commit is contained in:
Raum0x2A
2021-05-19 21:23:39 +00:00
parent a370e0f33d
commit 60de0ebb46
10 changed files with 191 additions and 101 deletions

87
lang.go
View File

@@ -3,13 +3,29 @@ package nmslib
import (
"encoding/csv"
"fmt"
"io/ioutil"
"os"
"strings"
)
func readCSV(lagcsv string) [][]string {
fileloc := NmsTemp + "/" + lagcsv
csvFile, err := os.Open(fileloc)
if err != nil {
fmt.Println(err)
}
defer csvFile.Close() // close language file when finished
// read csv file from memory
csvlines, err := csv.NewReader(csvFile).ReadAll()
if err != nil {
fmt.Println(err)
}
return csvlines
}
/*
Translate words
Create struct of Word string
*/
type Translate struct {
Word string
@@ -27,7 +43,7 @@ type trans0 struct {
Kor2Eng translate korvax word to english word
*/
func (t Translate) Kor2Eng() (returnstring string) {
csvlines := openCSV("korvax-lang.csv")
csvlines := readCSV("korvax-lang.csv")
for range csvlines {
returnstring = (toEng(t, csvlines))
}
@@ -38,7 +54,7 @@ func (t Translate) Kor2Eng() (returnstring string) {
Eng2Kor translate english word to korvax word
*/
func (t Translate) Eng2Kor() (returnstring string) {
csvlines := openCSV("korvax-lang.csv")
csvlines := readCSV("korvax-lang.csv")
for range csvlines {
returnstring = (toNMS(t, csvlines))
}
@@ -49,7 +65,7 @@ func (t Translate) Eng2Kor() (returnstring string) {
Gek2Eng translate Gek word to english word
*/
func (t Translate) Gek2Eng() (returnstring string) {
csvlines := openCSV("gek-lang.csv")
csvlines := readCSV("gek-lang.csv")
for range csvlines {
returnstring = (toEng(t, csvlines))
}
@@ -60,7 +76,7 @@ func (t Translate) Gek2Eng() (returnstring string) {
Eng2Gek translate english word to Gek word
*/
func (t Translate) Eng2Gek() (returnstring string) {
csvlines := openCSV("gek-lang.csv")
csvlines := readCSV("gek-lang.csv")
for range csvlines {
returnstring = (toNMS(t, csvlines))
}
@@ -68,10 +84,10 @@ func (t Translate) Eng2Gek() (returnstring string) {
}
/*
Vyk2Eng translate vykeen word to english word
Vyk2Eng translate Vy'keen word to english word
*/
func (t Translate) Vyk2Eng() (returnstring string) {
csvlines := openCSV("vykeen-lang.csv")
csvlines := readCSV("vykeen-lang.csv")
for range csvlines {
returnstring = (toEng(t, csvlines))
}
@@ -82,7 +98,7 @@ func (t Translate) Vyk2Eng() (returnstring string) {
Eng2Vyk translate english word to vykeen word
*/
func (t Translate) Eng2Vyk() (returnstring string) {
csvlines := openCSV("vykeen-lang.csv")
csvlines := readCSV("vykeen-lang.csv")
for range csvlines {
returnstring = (toNMS(t, csvlines))
}
@@ -93,7 +109,7 @@ func (t Translate) Eng2Vyk() (returnstring string) {
Atl2Eng translate Atlas word to english word
*/
func (t Translate) Atl2Eng() (returnstring string) {
csvlines := openCSV("atlas-lang.csv")
csvlines := readCSV("atlas-lang.csv")
for range csvlines {
returnstring = (toEng(t, csvlines))
}
@@ -104,7 +120,7 @@ func (t Translate) Atl2Eng() (returnstring string) {
Eng2Atl translate english word to Atlas word
*/
func (t Translate) Eng2Atl() (returnstring string) {
csvlines := openCSV("atlas-lang.csv")
csvlines := readCSV("atlas-lang.csv")
for range csvlines {
returnstring = (toNMS(t, csvlines))
}
@@ -159,52 +175,3 @@ func toNMS(t Translate, csvlines [][]string) string {
}
return returnstring
}
/*
func openCSV(lagcsv string) [][]string {
csvFile, err := os.Open("./assets/lang/" + lagcsv)
if err != nil {
fmt.Println(err)
}
defer csvFile.Close() // close language file when finished
// read csv file from memory
csvlines, err := csv.NewReader(csvFile).ReadAll()
if err != nil {
fmt.Println(err)
}
return csvlines
*/
func openCSV(lagcsv string) [][]string {
// create temp dir
tempdir, err := ioutil.TempDir("", "nmslib-")
if err != nil {
panic(err)
}
defer os.RemoveAll(tempdir) // Clean up temp files
// extract language file from resources.go
data, err := Asset("assets/lang/" + lagcsv)
if err != nil {
panic(err)
}
// wirte extracted data to temp dir
err = ioutil.WriteFile(tempdir+"/"+lagcsv, []byte(data), 0644)
if err != nil {
fmt.Println(err)
}
csvFile, err := os.Open(tempdir + "/" + lagcsv)
if err != nil {
fmt.Println(err)
}
defer csvFile.Close() // close language file when finished
// read csv file from memory
csvlines, err := csv.NewReader(csvFile).ReadAll()
if err != nil {
fmt.Println(err)
}
return csvlines
}