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.
298 lines
5.7 KiB
Go
298 lines
5.7 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",
|
|
"荷兰语": "nl",
|
|
"波兰语": "pl",
|
|
"罗马尼亚语": "ro",
|
|
}
|
|
|
|
func TestName(t *testing.T) {
|
|
var data = `德语: Herzlichen Glückwunsch!
|
|
西班牙语: ¡Felicidades!
|
|
法语: Félicitations !
|
|
印尼语: Selamat!
|
|
意大利语: Congratulazioni!
|
|
日语: おめでとうございます!
|
|
韩语: 축하합니다!
|
|
葡萄牙语: Parabéns!
|
|
俄语: Поздравляю!
|
|
泰语: ขอแสดงความยินดี!
|
|
土耳其语: Tebrikler!
|
|
繁体中文: 恭喜!
|
|
越南语: Chúc mừng!
|
|
匈牙利语: Gratulálok!`
|
|
|
|
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 := "congrats"
|
|
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{"help_wait"}
|
|
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 TestCopyCampaignKey(t *testing.T) {
|
|
entrys, err := os.ReadDir("./")
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
var key = map[string]string{
|
|
"next_week_do": "next_week_do",
|
|
"week_do_1": "week_do_1",
|
|
"week_do_2": "week_do_2",
|
|
"week_do_3": "week_do_3",
|
|
"week_do_4": "week_do_4",
|
|
"week_do_5": "week_do_5",
|
|
"week_do_6": "week_do_6",
|
|
"week_do_7": "week_do_7",
|
|
}
|
|
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)
|
|
|
|
var source = make(map[string]string)
|
|
var sb []byte
|
|
sb, err = os.ReadFile(fmt.Sprintf("../campaign/lang/%s.json", mark))
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
_ = json.Unmarshal(sb, &source)
|
|
|
|
for cp, to := range key {
|
|
_, ok1 := source[cp]
|
|
if !ok1 {
|
|
t.Logf("[%s]没有[%s]", mark, cp)
|
|
continue
|
|
}
|
|
ddd[to] = source[cp]
|
|
}
|
|
|
|
langData[mark] = ddd
|
|
}
|
|
|
|
for mark, data := range langData {
|
|
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()
|
|
}
|