-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathenum_option.go
43 lines (35 loc) · 944 Bytes
/
enum_option.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package main
import (
_ "embed"
"encoding/json"
"strings"
)
type enumOption struct {
Enum string `json:"enum"`
Key string `json:"key"`
Desc string `json:"desc"`
RsiInt interface{} `json:"rsi_int"`
}
//go:embed enum_option.json
var enumOptionFile []byte
func loadEnumOptions(dict map[string]string) (map[string]map[string]enumOption, error) {
enumOptionArray := make([]enumOption, 0)
if err := json.Unmarshal(enumOptionFile, &enumOptionArray); err != nil {
return nil, err
}
result := make(map[string]map[string]enumOption)
for _, eo := range enumOptionArray {
if eo.Key == "" {
continue
}
eo.Desc = localizeDesc(eo.Desc, dict)
if _, ok := result[eo.Enum]; !ok {
result[eo.Enum] = make(map[string]enumOption)
}
desc := eo.Desc
desc = strings.ReplaceAll(eo.Desc, "-\r\n", "­")
desc = strings.ReplaceAll(desc, "\r\n", " ")
result[eo.Enum][desc] = eo
}
return result, nil
}