77 lines
1.5 KiB
Go
77 lines
1.5 KiB
Go
package nmslib
|
|
|
|
import (
|
|
"encoding/csv"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
/*
|
|
Korvaxlang - set up structure of a word iteration
|
|
*/
|
|
type Korvaxlang struct {
|
|
English string
|
|
KorvaxWord string
|
|
KWCaps string
|
|
KWALLCAPS string
|
|
}
|
|
|
|
/*
|
|
Korvax2Eng - convert known korvax words into english
|
|
*/
|
|
func Korvax2Eng(kvwrd string) string {
|
|
csvFile, err := os.Open("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 := Korvaxlang{
|
|
English: line[0],
|
|
KorvaxWord: line[1],
|
|
KWCaps: line[2],
|
|
KWALLCAPS: line[3],
|
|
}
|
|
if kvwrd == klang.KorvaxWord {
|
|
return klang.English
|
|
} else if kvwrd == klang.KWCaps {
|
|
return strings.Title(strings.ToLower(klang.English))
|
|
} else if kvwrd == klang.KWALLCAPS {
|
|
return strings.ToUpper(klang.English)
|
|
}
|
|
}
|
|
return "*\\Kzzzzzzt\\*" // word not found default
|
|
}
|
|
|
|
/*
|
|
Eng2Korvax - Convert (some) english words to Korvax
|
|
*/
|
|
func Eng2Korvax(enwrd string) string {
|
|
csvFile, err := os.Open("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 := Korvaxlang{
|
|
English: line[0],
|
|
KorvaxWord: line[1],
|
|
KWCaps: line[2],
|
|
KWALLCAPS: line[3],
|
|
}
|
|
if enwrd == klang.English {
|
|
return klang.KorvaxWord
|
|
}
|
|
}
|
|
return "*\\Kzzzzzzt\\*" // word not found default
|
|
}
|