package lang import ( "joybuywork/internal/repository/mtype" "joybuywork/internal/utils/verify" "encoding/json" "fmt" "os" "strings" "testing" ) var aa = map[string]string{ "德语": "de", "英语": "en", "西班牙语": "es", "法语": "fr", "印尼语": "id", "意大利语": "it", "日语": "ja", "韩语": "ko", "葡萄牙语": "pt", "俄语": "ru", "泰语": "th", "土耳其语": "tr", "中文": "zh", "繁体中文": "zh-TW", "越南语": "vi", "匈牙利语": "hu", "捷克语": "cs", "荷兰语": "nl", "波兰语": "pl", "罗马尼亚语": "ro", } func TestName(t *testing.T) { var data = `德语: Abziehen 西班牙语: Deducir 法语: Déduire 印尼语: Kurangi 意大利语: Dedurre 日语: 控除 韩语: 차감 葡萄牙语: Deduzir 俄语: Вычесть 泰语: หัก 土耳其语: Düş 繁体中文: 扣除 越南语: Khấu trừ 匈牙利语: Levon 捷克语: Odečíst` entrys, err := os.ReadDir("./") if err != nil { return } var langData = make(map[string]map[string]string) for _, entry := range entrys { if !strings.HasSuffix(entry.Name(), ".json") { continue } mark, _ := strings.CutSuffix(entry.Name(), ".json") _, ok := mtype.MarkToLangType[mark] if !ok { continue } var ddd = make(map[string]string) var b []byte b, err = os.ReadFile(entry.Name()) if err != nil { return } _ = json.Unmarshal(b, &ddd) langData[mark] = ddd } ak := "deduct" var arr = strings.Split(data, "\n") for _, v := range arr { key, val, _ := strings.Cut(v, ":") mark := aa[strings.TrimSpace(key)] if _, ok := langData[mark][ak]; !ok { file, _ := os.OpenFile(mark+".json", os.O_RDWR|os.O_TRUNC, 0666) langData[mark][ak] = strings.TrimSpace(val) adata, _ := json.Marshal(langData[mark]) file.Write(adata) file.Close() fmt.Printf("%s: %s->%s \n", key, ak, langData[mark][ak]) } } } func TestRemoveKey(t *testing.T) { entrys, err := os.ReadDir("./") if err != nil { return } var keys = []string{"invite_friend_install_get_vote_chance_v2"} var langData = make(map[string]map[string]string) for _, entry := range entrys { if !strings.HasSuffix(entry.Name(), ".json") { continue } mark, _ := strings.CutSuffix(entry.Name(), ".json") _, ok := mtype.MarkToLangType[mark] if !ok { continue } var ddd = make(map[string]string) var b []byte b, err = os.ReadFile(entry.Name()) if err != nil { return } _ = json.Unmarshal(b, &ddd) for _, key := range keys { delete(ddd, key) } langData[mark] = ddd } for mark, data := range langData { if verify.InArray(mark, "en", "zh", "ar") { continue } file, _ := os.OpenFile(mark+".json", os.O_RDWR|os.O_TRUNC, 0666) adata, _ := json.Marshal(data) file.Write(adata) file.Close() } } func TestCopyKey(t *testing.T) { entrys, err := os.ReadDir("./") if err != nil { return } var key = map[string]string{ "help_fail": "distribution_failed", } var langData = make(map[string]map[string]string) for _, entry := range entrys { if !strings.HasSuffix(entry.Name(), ".json") { continue } mark, _ := strings.CutSuffix(entry.Name(), ".json") _, ok := mtype.MarkToLangType[mark] if !ok { continue } var ddd = make(map[string]string) var b []byte b, err = os.ReadFile(entry.Name()) if err != nil { return } _ = json.Unmarshal(b, &ddd) for cp, to := range key { _, ok1 := ddd[cp] if !ok1 { t.Logf("[%s]没有[%s]", mark, cp) continue } ddd[to] = ddd[cp] } langData[mark] = ddd } for mark, data := range langData { if verify.InArray(mark, "en", "zh", "ar", "zh-TW") { continue } file, _ := os.OpenFile(mark+".json", os.O_RDWR|os.O_TRUNC, 0666) adata, _ := json.Marshal(data) file.Write(adata) file.Close() } } func TestUpdateKey(t *testing.T) { var fname = "./es.json" b, err := os.ReadFile(fname) if err != nil { t.Log(err) return } var ddd = make(map[string]string) _ = json.Unmarshal(b, &ddd) val := "Girar" key := []string{"spin", "lottery"} var do bool for _, v := range key { old, ok := ddd[v] if !ok || old == val { continue } ddd[v] = val do = true fmt.Printf("%s: %s->%s \n", v, old, val) } if !do { t.Log("not done ") return } file, _ := os.OpenFile(fname, os.O_RDWR|os.O_TRUNC, 0666) adata, _ := json.Marshal(ddd) file.Write(adata) file.Close() }