You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

235 lines
4.3 KiB
Go

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()
}