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