Compare commits
8 Commits
v0.2.6
...
v0.3.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2bb7ca6ccd | ||
|
|
2610d98ae1 | ||
|
|
32d533ff61 | ||
|
|
ac68a20697 | ||
|
|
0b90141dcd | ||
|
|
5bc5711f09 | ||
|
|
00411f015c | ||
|
|
ab9799b273 |
14
README.md
14
README.md
@@ -37,8 +37,9 @@ func main() {
|
||||
|
||||
nmslib.CreateBanner(portalcode, "NewLennon.png", 0)
|
||||
|
||||
fmt.Println(nmslib.Korvax2Eng("eapoluch"))
|
||||
fmt.Println(nmslib.Eng2Korvax("emergency"))
|
||||
fmt.Println(Translate{"KIHTYOMOLES"}.Kor2Eng())
|
||||
korvax := Translate{"Contraband"}
|
||||
fmt.Println(korvax.Eng2Kor())
|
||||
}
|
||||
|
||||
```
|
||||
@@ -104,12 +105,12 @@ This function takes only 1 parameter and returns a string
|
||||
**Example:**
|
||||
|
||||
```golang
|
||||
fmt.Println(Korvax2Eng("eapoluch"))
|
||||
fmt.Println(Translate{"KIHTYOMOLES"}.Kor2Eng())
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
``emergency``
|
||||
``CONTRABAND``
|
||||
|
||||
### Translate English to Korvax with Eng2Korvax()
|
||||
|
||||
@@ -120,12 +121,13 @@ This function takes only 1 parameter and returns a string
|
||||
**Example:**
|
||||
|
||||
```golang
|
||||
fmt.Println(Eng2Korvax("emergency"))
|
||||
korvax := Translate{"Contraband"}
|
||||
fmt.Println(korvax.Eng2Kor())
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
``eapoluch``
|
||||
``Zelidovoso``
|
||||
|
||||
## License
|
||||
[MIT](COPYING)
|
||||
|
||||
228
lang.go
228
lang.go
@@ -8,8 +8,15 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// translate - set up structure of a word iteration
|
||||
type translate struct {
|
||||
/*
|
||||
Translate words
|
||||
*/
|
||||
type Translate struct {
|
||||
word string
|
||||
}
|
||||
|
||||
// trans - set up structure of a word iteration
|
||||
type trans0 struct {
|
||||
english string // english word
|
||||
word string // no caps word
|
||||
capword string // Capitalized word
|
||||
@@ -17,9 +24,143 @@ type translate struct {
|
||||
}
|
||||
|
||||
/*
|
||||
Korvax2Eng - Translate a Korvax word to English
|
||||
Kor2Eng translate korvax word to english word
|
||||
*/
|
||||
func Korvax2Eng(kvwrd string) string {
|
||||
func (t Translate) Kor2Eng() (returnstring string) {
|
||||
csvlines := openCSV("korvax-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toEng(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Eng2Kor translate english word to korvax word
|
||||
*/
|
||||
func (t Translate) Eng2Kor() (returnstring string) {
|
||||
csvlines := openCSV("korvax-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toNMS(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Gek2Eng translate Gek word to english word
|
||||
*/
|
||||
func (t Translate) Gek2Eng() (returnstring string) {
|
||||
csvlines := openCSV("gek-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toEng(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Eng2Gek translate english word to Gek word
|
||||
*/
|
||||
func (t Translate) Eng2Gek() (returnstring string) {
|
||||
csvlines := openCSV("gek-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toNMS(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Vyk2Eng translate vykeen word to english word
|
||||
*/
|
||||
func (t Translate) Vyk2Eng() (returnstring string) {
|
||||
csvlines := openCSV("vykeen-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toEng(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Eng2Vyk translate english word to vykeen word
|
||||
*/
|
||||
func (t Translate) Eng2Vyk() (returnstring string) {
|
||||
csvlines := openCSV("vykeen-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toNMS(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Atl2Eng translate Atlas word to english word
|
||||
*/
|
||||
func (t Translate) Atl2Eng() (returnstring string) {
|
||||
csvlines := openCSV("atlas-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toEng(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Eng2Atl translate english word to Atlas word
|
||||
*/
|
||||
func (t Translate) Eng2Atl() (returnstring string) {
|
||||
csvlines := openCSV("atlas-lang.csv")
|
||||
for range csvlines {
|
||||
returnstring = (toNMS(t, csvlines))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func toEng(t Translate, csvlines [][]string) string {
|
||||
returnstring := "*\\Kzzzzzzt\\*" // word not found default
|
||||
for _, line := range csvlines {
|
||||
lang := trans0{
|
||||
english: strings.ToLower(line[0]),
|
||||
word: strings.ToLower(line[1]),
|
||||
capword: strings.ToLower(line[2]),
|
||||
acpword: strings.ToLower(line[3]),
|
||||
}
|
||||
// check translate struct for value
|
||||
if strings.ToLower(t.word) == lang.word {
|
||||
returnstring = lang.english
|
||||
} else if strings.ToLower(t.word) == lang.capword {
|
||||
returnstring = strings.Title(strings.ToLower(lang.english))
|
||||
} else if strings.ToLower(t.word) == lang.acpword {
|
||||
returnstring = strings.ToUpper(lang.english)
|
||||
}
|
||||
}
|
||||
return returnstring
|
||||
}
|
||||
|
||||
func toNMS(t Translate, csvlines [][]string) string {
|
||||
returnstring := "*\\Kzzzzzzt\\*" // word not found default
|
||||
for _, line := range csvlines {
|
||||
lang := trans0{
|
||||
english: line[0],
|
||||
word: line[1],
|
||||
capword: line[2],
|
||||
acpword: line[3],
|
||||
}
|
||||
if t.word == lang.english {
|
||||
if lang.word != "" {
|
||||
returnstring = lang.word
|
||||
}
|
||||
}
|
||||
if t.word == strings.Title(strings.ToLower(lang.english)) {
|
||||
if lang.capword != "" {
|
||||
returnstring = strings.Title(strings.ToLower(lang.capword))
|
||||
}
|
||||
}
|
||||
if t.word == strings.ToUpper(lang.english) {
|
||||
if lang.acpword != "" {
|
||||
returnstring = strings.ToUpper(lang.acpword)
|
||||
}
|
||||
}
|
||||
}
|
||||
return returnstring
|
||||
}
|
||||
|
||||
func openCSV(lagcsv string) [][]string {
|
||||
// create temp dir
|
||||
tempdir, err := ioutil.TempDir("", "nmslib-")
|
||||
if err != nil {
|
||||
@@ -28,88 +169,23 @@ func Korvax2Eng(kvwrd string) string {
|
||||
defer os.RemoveAll(tempdir) // Clean up temp files
|
||||
|
||||
// extract language file from resources.go
|
||||
data, err := Asset("korvax-lang.csv")
|
||||
data, err := Asset(lagcsv)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// wirte extracted data to temp dir
|
||||
err = ioutil.WriteFile(tempdir+"/korvax-lang.csv", []byte(data), 0644)
|
||||
csvFile, err := os.Open(tempdir + "/korvax-lang.csv")
|
||||
err = ioutil.WriteFile(tempdir+"/"+lagcsv, []byte(data), 0644)
|
||||
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)
|
||||
}
|
||||
// loop through language data and assign to translate strut
|
||||
for _, line := range csvlines {
|
||||
lang := translate{
|
||||
english: strings.ToLower(line[0]),
|
||||
word: strings.ToLower(line[1]),
|
||||
capword: strings.ToLower(line[2]),
|
||||
acpword: strings.ToLower(line[3]),
|
||||
}
|
||||
// check translate struct for value
|
||||
if strings.ToLower(kvwrd) == lang.word {
|
||||
return lang.english
|
||||
} else if strings.ToLower(kvwrd) == lang.capword {
|
||||
return strings.Title(strings.ToLower(lang.english))
|
||||
} else if strings.ToLower(kvwrd) == lang.acpword {
|
||||
return strings.ToUpper(lang.english)
|
||||
}
|
||||
}
|
||||
return "*\\Kzzzzzzt\\*" // word not found default
|
||||
}
|
||||
|
||||
/*
|
||||
Eng2Korvax - Convert (some) english words to Korvax
|
||||
*/
|
||||
func Eng2Korvax(enwrd string) string {
|
||||
// setup temp dir
|
||||
tempdir, err := ioutil.TempDir("", "nmslib")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer os.RemoveAll(tempdir) // clean up temp files
|
||||
|
||||
data, err := Asset("korvax-lang.csv")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
err = ioutil.WriteFile(tempdir+"/korvax-lang.csv", []byte(data), 0644)
|
||||
csvFile, err := os.Open(tempdir + "/korvax-lang.csv")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
csvlines, err := csv.NewReader(csvFile).ReadAll()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
for _, line := range csvlines {
|
||||
lang := translate{
|
||||
english: line[0],
|
||||
word: line[1],
|
||||
capword: line[2],
|
||||
acpword: line[3],
|
||||
}
|
||||
if enwrd == lang.english {
|
||||
if lang.word != "" {
|
||||
return lang.word
|
||||
}
|
||||
}
|
||||
if enwrd == strings.Title(strings.ToLower(lang.english)) {
|
||||
if lang.capword != "" {
|
||||
return strings.Title(strings.ToLower(lang.capword))
|
||||
}
|
||||
}
|
||||
if enwrd == strings.ToUpper(lang.english) {
|
||||
if lang.acpword != "" {
|
||||
return strings.ToUpper(lang.acpword)
|
||||
}
|
||||
}
|
||||
}
|
||||
csvFile.Close()
|
||||
return "*\\Kzzzzzzt\\*" // word not found default
|
||||
return csvlines
|
||||
}
|
||||
|
||||
@@ -33,9 +33,9 @@ func TestGalactic2portal(t *testing.T) {
|
||||
panic(err)
|
||||
}
|
||||
if want != "106AFA556C30" {
|
||||
t.Errorf("Testing Gc2p(\"042F:0079:0D55:006A\"): got %q, want: %q.\n", want, "106AFA556C30")
|
||||
t.Errorf("\nTesting Gc2p(\"042F:0079:0D55:006A\"): got %q, want: %q.\n", want, "106AFA556C30")
|
||||
} else {
|
||||
fmt.Printf("Testing Gc2p(\"042F:0079:0D55:006A\"): got: %q, want: %q.\n", want, "106AFA556C30")
|
||||
fmt.Printf("\nTesting Gc2p(\"042F:0079:0D55:006A\"): got: %q, want: %q.\n", want, "106AFA556C30")
|
||||
}
|
||||
|
||||
want, err = Gc2p("042E:0078:0D53:01ED", 4)
|
||||
@@ -50,68 +50,35 @@ func TestGalactic2portal(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCreateBanner(t *testing.T) {
|
||||
fmt.Printf("Testing CreateBanner: ")
|
||||
fmt.Printf("\nTesting CreateBanner: ")
|
||||
CreateBanner("006afa556c30", "/tmp/Test.png", 0)
|
||||
}
|
||||
|
||||
func TestKorvax2Eng(t *testing.T) {
|
||||
want := Korvax2Eng("rodiashikhv")
|
||||
if want != "contraband" {
|
||||
t.Errorf("Testing Korvax2eng(\"rodiashikhv\"): got %q, want: %q.\n", want, "contraband")
|
||||
func TestTranslate(t *testing.T) {
|
||||
want := Translate{"Paka"}
|
||||
if want.Atl2Eng() != "Awake" {
|
||||
t.Errorf("\nTesting Translate{\"Paka\"}.Atl2Eng(): got %q, want: %q.\n", want.Atl2Eng(), "Awake")
|
||||
} else {
|
||||
fmt.Printf("Testing Korvax2eng(\"rodiashikhv\"): got %q, want: %q.\n", want, "contraband")
|
||||
fmt.Printf("\nTesting Translate{\"Paka\"}.Atl2Eng(): got %q, want: %q.\n", want.Atl2Eng(), "Awake")
|
||||
}
|
||||
want = Translate{"hofsos"}
|
||||
if want.Gek2Eng() != "answer" {
|
||||
t.Errorf("Testing Translate{\"hofsos\"}.Gek2Eng(): got %q, want: %q.\n", want.Gek2Eng(), "answer")
|
||||
} else {
|
||||
fmt.Printf("Testing Translate{\"hofsos\"}.Gek2Eng(): got %q, want: %q.\n", want.Gek2Eng(), "answer")
|
||||
}
|
||||
|
||||
want = Korvax2Eng("KIHTYOMOLES")
|
||||
if want != "CONTRABAND" {
|
||||
t.Errorf("Testing Korvax2eng(\"KIHTYOMOLES\"): got %q, want: %q.\n", want, "CONTRABAND")
|
||||
want = Translate{"Aqo"}
|
||||
if want.Vyk2Eng() != "Foes" {
|
||||
t.Errorf("Testing Translate{\"Aqo\"}.Vyk2Eng(): got %q, want: %q.\n", want.Vyk2Eng(), "Foes")
|
||||
} else {
|
||||
fmt.Printf("Testing Korvax2eng(\"KIHTYOMOLES\"): got %q, want: %q.\n", want, "CONTRABAND")
|
||||
fmt.Printf("Testing Translate{\"Aqo\"}.Vyk2Eng(): got %q, want: %q.\n", want.Vyk2Eng(), "Foes")
|
||||
}
|
||||
|
||||
want = Korvax2Eng("Zelidovoso")
|
||||
if want != "Contraband" {
|
||||
t.Errorf("Testing Korvax2eng(\"Zelidovoso\"): got %q, want: %q.\n", want, "Contraband")
|
||||
want = Translate{"Alinichel"}
|
||||
if want.Kor2Eng() != "Emergency" {
|
||||
t.Errorf("Testing Translate{\"Alinichel\"}.Kor2Eng(): got %q, want: %q.\n", want.Kor2Eng(), "Emergency")
|
||||
} else {
|
||||
fmt.Printf("Testing Korvax2eng(\"Zelidovoso\"): got %q, want: %q.\n", want, "Contraband")
|
||||
fmt.Printf("Testing Translate{\"Alinichel\"}.Kor2Eng(): got %q, want: %q.\n", want.Kor2Eng(), "Emergency")
|
||||
}
|
||||
|
||||
want = Korvax2Eng("notaword")
|
||||
if want != "*\\Kzzzzzzt\\*" {
|
||||
t.Errorf("Testing Korvax2eng(\"notaword\"): got %q, want: %q.\n", want, "*\\Kzzzzzzt\\*")
|
||||
} else {
|
||||
fmt.Printf("Testing Korvax2eng(\"notaword\"): got %q, want: %q.\n", want, "*\\Kzzzzzzt\\*")
|
||||
}
|
||||
}
|
||||
|
||||
func TestEng2Korvax(t *testing.T) {
|
||||
want := Eng2Korvax("contraband")
|
||||
if want != "rodiashikhv" {
|
||||
t.Errorf("Testing Eng2Korvax(\"contraband\"): got %q, want: %q.\n", want, "rodiashikhv")
|
||||
} else {
|
||||
fmt.Printf("Testing Eng2Korvax(\"contraband\"): got %q, want: %q.\n", want, "rodiashikhv")
|
||||
}
|
||||
|
||||
want = Eng2Korvax("CONTRABAND")
|
||||
if want != "KIHTYOMOLES" {
|
||||
t.Errorf("Testing Eng2Korvax(\"CONTRABAND\"): got %q, want: %q.\n", want, "KIHTYOMOLES")
|
||||
} else {
|
||||
fmt.Printf("Testing Eng2Korvax(\"CONTRABAND\"): got %q, want: %q.\n", want, "KIHTYOMOLES")
|
||||
}
|
||||
|
||||
want = Eng2Korvax("Contraband")
|
||||
if want != "Zelidovoso" {
|
||||
t.Errorf("Testing Eng2Korvax(\"Contraband\"): got %q, want: %q.\n", want, "Zelidovoso")
|
||||
} else {
|
||||
fmt.Printf("Testing Eng2Korvax(\"Contraband\"): got %q, want: %q.\n", want, "Zelidovoso")
|
||||
}
|
||||
|
||||
want = Eng2Korvax("notaword")
|
||||
if want != "*\\Kzzzzzzt\\*" {
|
||||
t.Errorf("Testing Eng2Korvax(\"notaword\"): got %q, want: %q.\n", want, "*\\Kzzzzzzt\\*")
|
||||
} else {
|
||||
fmt.Printf("Testing Eng2Korvax(\"notaword\"): got %q, want: %q.\n", want, "*\\Kzzzzzzt\\*")
|
||||
}
|
||||
|
||||
fmt.Printf("Testing: ")
|
||||
fmt.Printf("\nTesting complete.\nStatus: ")
|
||||
}
|
||||
|
||||
73
resources.go
73
resources.go
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user