feat: i18n
This commit is contained in:
parent
4ea8acc018
commit
6e78340e7c
|
@ -496,7 +496,14 @@
|
||||||
|
|
||||||
"gvaPluginUserInjection": "اختبار حقن Gva Plugin User",
|
"gvaPluginUserInjection": "اختبار حقن Gva Plugin User",
|
||||||
"chineseInjection": "اختبار حقن اللغة الصينية",
|
"chineseInjection": "اختبار حقن اللغة الصينية",
|
||||||
"gvaPluginUserRollback": "اختبار تراجع Gva Plugin User"
|
"gvaPluginUserRollback": "اختبار تراجع Gva Plugin User",
|
||||||
|
|
||||||
|
"registrationError": "تم تسجيله بالفعل ولا يمكن تسجيله مرة أخرى",
|
||||||
|
"valueCannotBeEmpty": "لا يمكن أن تكون فارغة",
|
||||||
|
"formatValidationFailed": "فشل التحقق من تنسيق",
|
||||||
|
"lengthOrValueOutOfRange": "طول أو القيمة خارج النطاق القانوني",
|
||||||
|
"sysNoSupport": "النظام غير مدعوم",
|
||||||
|
"fileNameInvalid": "اسم الملف غير صالح"
|
||||||
},
|
},
|
||||||
"router": {
|
"router": {
|
||||||
|
|
||||||
|
|
|
@ -499,7 +499,14 @@
|
||||||
|
|
||||||
"gvaPluginUserInjection": "Test injection of Gva Plugin User",
|
"gvaPluginUserInjection": "Test injection of Gva Plugin User",
|
||||||
"chineseInjection": "Test injection of Chinese",
|
"chineseInjection": "Test injection of Chinese",
|
||||||
"gvaPluginUserRollback": "Test rollback of Gva Plugin User"
|
"gvaPluginUserRollback": "Test rollback of Gva Plugin User",
|
||||||
|
|
||||||
|
"registrationError": "is already registered and cannot be registered again",
|
||||||
|
"valueCannotBeEmpty": "cannot be empty",
|
||||||
|
"formatValidationFailed": "format validation failed",
|
||||||
|
"lengthOrValueOutOfRange": "length or value is out of valid range",
|
||||||
|
"sysNoSupport": "The system does not support",
|
||||||
|
"fileNameInvalid": "File name is invalid"
|
||||||
},
|
},
|
||||||
"router": {
|
"router": {
|
||||||
|
|
||||||
|
|
|
@ -514,8 +514,14 @@
|
||||||
|
|
||||||
"gvaPluginUserInjection": "测试 Gva插件User 注入",
|
"gvaPluginUserInjection": "测试 Gva插件User 注入",
|
||||||
"chineseInjection": "测试 中文 注入",
|
"chineseInjection": "测试 中文 注入",
|
||||||
"gvaPluginUserRollback": "测试 Gva插件User 回滚"
|
"gvaPluginUserRollback": "测试 Gva插件User 回滚",
|
||||||
|
|
||||||
|
"registrationError": "已注册,无法重复注册",
|
||||||
|
"valueCannotBeEmpty": "值不能为空",
|
||||||
|
"formatValidationFailed": "格式校验不通过",
|
||||||
|
"lengthOrValueOutOfRange": "长度或值不在合法范围",
|
||||||
|
"sysNoSupport": "系统不支持",
|
||||||
|
"fileNameInvalid": "文件名不合法"
|
||||||
|
|
||||||
},
|
},
|
||||||
"router": {
|
"router": {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
@ -10,7 +11,7 @@ import (
|
||||||
|
|
||||||
func Reload() error {
|
func Reload() error {
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
return errors.New("系统不支持")
|
return errors.New(global.Translate("utils.sysNoSupport"))
|
||||||
}
|
}
|
||||||
pid := os.Getpid()
|
pid := os.Getpid()
|
||||||
cmd := exec.Command("kill", "-1", strconv.Itoa(pid))
|
cmd := exec.Command("kill", "-1", strconv.Itoa(pid))
|
||||||
|
|
|
@ -2,6 +2,7 @@ package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
||||||
"reflect"
|
"reflect"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -22,7 +23,7 @@ var CustomizeMap = make(map[string]Rules)
|
||||||
|
|
||||||
func RegisterRule(key string, rule Rules) (err error) {
|
func RegisterRule(key string, rule Rules) (err error) {
|
||||||
if CustomizeMap[key] != nil {
|
if CustomizeMap[key] != nil {
|
||||||
return errors.New(key + "已注册,无法重复注册")
|
return errors.New(key + global.Translate("utils.registrationError"))
|
||||||
} else {
|
} else {
|
||||||
CustomizeMap[key] = rule
|
CustomizeMap[key] = rule
|
||||||
return nil
|
return nil
|
||||||
|
@ -147,15 +148,15 @@ func Verify(st interface{}, roleMap Rules) (err error) {
|
||||||
switch {
|
switch {
|
||||||
case v == "notEmpty":
|
case v == "notEmpty":
|
||||||
if isBlank(val) {
|
if isBlank(val) {
|
||||||
return errors.New(tagVal.Name + "值不能为空")
|
return errors.New(tagVal.Name + global.Translate("utils.valueCannotBeEmpty"))
|
||||||
}
|
}
|
||||||
case strings.Split(v, "=")[0] == "regexp":
|
case strings.Split(v, "=")[0] == "regexp":
|
||||||
if !regexpMatch(strings.Split(v, "=")[1], val.String()) {
|
if !regexpMatch(strings.Split(v, "=")[1], val.String()) {
|
||||||
return errors.New(tagVal.Name + "格式校验不通过")
|
return errors.New(tagVal.Name + global.Translate("utils.formatValidationFailed"))
|
||||||
}
|
}
|
||||||
case compareMap[strings.Split(v, "=")[0]]:
|
case compareMap[strings.Split(v, "=")[0]]:
|
||||||
if !compareVerify(val, v) {
|
if !compareVerify(val, v) {
|
||||||
return errors.New(tagVal.Name + "长度或值不在合法范围," + v)
|
return errors.New(tagVal.Name + global.Translate("utils.lengthOrValueOutOfRange") + v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package utils
|
||||||
import (
|
import (
|
||||||
"archive/zip"
|
"archive/zip"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -20,7 +21,7 @@ func Unzip(zipFile string, destDir string) ([]string, error) {
|
||||||
|
|
||||||
for _, f := range zipReader.File {
|
for _, f := range zipReader.File {
|
||||||
if strings.Index(f.Name, "..") > -1 {
|
if strings.Index(f.Name, "..") > -1 {
|
||||||
return []string{}, fmt.Errorf("%s 文件名不合法", f.Name)
|
return []string{}, fmt.Errorf("%s %s", f.Name, global.Translate("utils.fileNameInvalid"))
|
||||||
}
|
}
|
||||||
fpath := filepath.Join(destDir, f.Name)
|
fpath := filepath.Join(destDir, f.Name)
|
||||||
paths = append(paths, fpath)
|
paths = append(paths, fpath)
|
||||||
|
|
Loading…
Reference in New Issue