[add] widget table i18n support
This commit is contained in:
parent
c0e7f88d26
commit
92cc28df20
16 changed files with 562 additions and 111 deletions
276
data/bindata.go
276
data/bindata.go
|
|
@ -25,6 +25,12 @@
|
|||
// .tmp/data/yao/flows/menu.flow.json
|
||||
// .tmp/data/yao/flows/user/find.flow.json
|
||||
// .tmp/data/yao/langs/en-US.json
|
||||
// .tmp/data/yao/langs/zh-cn/global.yml
|
||||
// .tmp/data/yao/langs/zh-cn/logins/admin.login.yml
|
||||
// .tmp/data/yao/langs/zh-cn/logins/user.login.yml
|
||||
// .tmp/data/yao/langs/zh-hk/global.yml
|
||||
// .tmp/data/yao/langs/zh-hk/logins/admin.login.yml
|
||||
// .tmp/data/yao/langs/zh-hk/logins/user.login.yml
|
||||
// .tmp/data/yao/models/README.md
|
||||
// .tmp/data/yao/models/menu.mod.json
|
||||
// .tmp/data/yao/models/user.mod.json
|
||||
|
|
@ -210,7 +216,7 @@ func uiIndexHtml() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -230,7 +236,7 @@ func xgenV09IndexHtml() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -250,7 +256,7 @@ func xgenV10IndexHtml() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -270,7 +276,7 @@ func xgenV10Layouts__indexAsyncJs() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -290,7 +296,7 @@ func xgenV10UmiJs() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -310,7 +316,7 @@ func yaoApisReadmeMd() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/README.md", size: 13, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/README.md", size: 13, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -330,7 +336,7 @@ func yaoApisChartHttpJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/chart.http.json", size: 624, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/chart.http.json", size: 624, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -350,7 +356,7 @@ func yaoApisImportHttpJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1676, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1676, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -370,7 +376,7 @@ func yaoApisPageHttpJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/page.http.json", size: 609, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/page.http.json", size: 609, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -390,7 +396,7 @@ func yaoApisStorageHttpJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1026, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1026, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -410,7 +416,7 @@ func yaoApisTableHttpJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/table.http.json", size: 3213, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/table.http.json", size: 3213, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -430,7 +436,7 @@ func yaoApisUserHttpJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/user.http.json", size: 1453, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/user.http.json", size: 1453, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -450,7 +456,7 @@ func yaoApisXiangHttpJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/apis/xiang.http.json", size: 1239, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/apis/xiang.http.json", size: 1239, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -470,7 +476,7 @@ func yaoDataAppJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/data/app.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/data/app.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -490,7 +496,7 @@ func yaoDataIcons404Png() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -510,7 +516,7 @@ func yaoDataIconsIconIcns() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -530,7 +536,7 @@ func yaoDataIconsIconIco() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -550,7 +556,7 @@ func yaoDataIconsIconPng() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -570,12 +576,12 @@ func yaoDataIndexHtml() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _yaoFieldsModelTransJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x9b\xcd\x72\xdb\x36\x10\xc7\xef\x7a\x0a\x0c\xeb\xa3\xc6\xe3\xf6\xd0\x83\x6e\x49\x6c\x37\xee\x21\xe9\x44\x9a\x5c\x3a\x3d\x40\xc4\x5a\x42\x8d\x0f\x96\x00\xad\x28\x0a\xdf\xbd\x03\x80\x10\x09\x9a\x74\xd8\x56\x96\x68\x15\x39\x24\xe4\xee\xe2\xeb\x0f\xfc\x00\x50\x40\x76\x13\x84\x92\x47\x9c\x53\xbc\x64\xa0\x92\x19\x32\x06\x84\x92\x54\x32\x99\x9b\x57\x94\x64\x39\xe5\x38\xdf\x26\x33\x94\xfc\x70\x7b\x7b\x73\x73\x75\x95\xa0\x72\x82\x50\x39\x9d\x98\xc4\x98\x51\xac\x9a\x49\x95\xce\xa9\x58\x99\x70\x02\xf7\xb8\x60\x3a\x99\x56\x79\xae\x71\xde\x61\xe6\x40\x68\xc1\x17\xf0\x45\x1b\xa7\x36\xff\x56\x1e\x26\xc5\xaa\xcb\xbe\xa4\xa2\xaa\x50\xd3\x4a\xb0\x06\x4d\x39\x2c\xbe\xda\x42\xaa\x37\xef\xad\x3d\x6d\xab\xd2\x98\x67\xb5\xcb\xbe\xd6\x7e\xb1\xbd\x13\x1a\x56\x60\x6b\x4e\xab\xc7\xc0\x9b\xe6\xc0\x41\x68\xd5\x11\x50\x08\x45\x57\x02\xc8\xe2\xd9\x6c\x14\xc7\x8c\x7d\xd7\xfd\x4c\x31\x4b\xba\xea\x4f\x6e\x9d\x03\xea\xf8\x36\xc8\xc4\x5b\xef\xba\x83\xe7\xad\x2a\xf7\x84\xdf\x5d\xdb\x02\x89\x7f\xa7\x61\x45\xf6\x76\x02\x29\xe5\x98\x19\xe3\x3d\x93\xb8\xee\x52\x59\x2c\x19\x3c\x31\xfb\xd2\xae\xeb\x64\xde\x74\xdb\x19\xb7\xcf\xa6\x33\xec\xd7\xf9\xc7\x0f\xc6\xf9\xa7\x92\xc2\xdb\xcc\xf3\xb2\x6d\x34\x81\x6f\xdb\xc6\xa2\xa0\xa4\x63\x54\xd3\xec\x0d\x21\x39\x28\xd5\x35\xe2\x71\xda\xe1\xac\x91\xba\xa7\xc0\x48\x83\x28\x1f\xe1\x0d\x36\x84\x69\x2b\xbd\xb7\x20\x94\x3c\x80\x65\xe2\x62\xc7\xf0\x12\x18\xfa\xf6\x0d\xa5\x92\x1b\xb5\xcd\xa3\xc0\x1c\xca\xaa\x02\x1e\x22\x5b\xef\xcd\x1a\x72\xb8\xbc\xd8\xd9\x80\x4b\x8e\x75\xba\x6e\x86\x01\xa1\x3a\x28\xc6\x8c\xfb\x6d\x66\xd5\xbc\x13\x59\xa1\x1b\xc1\xc8\x4c\x16\x32\x53\xd5\xbc\xc1\x70\x0a\x6b\xc9\x88\x1b\x22\xb3\x59\xc6\x00\x2b\x40\xd4\xa4\x42\x4f\x6b\x59\xba\x69\xc5\xfd\xf1\x4f\xe5\x74\xdf\x62\x99\xf3\x43\xb4\xb7\x6a\xe9\x28\xdb\xa8\xb1\x1b\xa7\x2f\xd1\xc8\x47\x0a\x9b\xbe\x46\x2e\xea\x69\xb4\xdd\xc6\x46\x75\x47\xa4\xd8\xa4\xaa\x90\xe3\x03\x44\xc1\x8f\x01\x07\xfc\x35\x74\xd4\xcc\x81\x41\xda\x27\x42\xc3\x88\xfa\x05\x51\x36\x8b\x4e\x45\xa6\x61\x0e\x32\xd3\x54\x0a\x3b\x97\x5c\x5c\xba\x92\x3f\x5a\xd3\xce\x79\xca\xa4\x11\x3f\x42\xc4\x5e\xa7\x58\x2f\xc9\x2a\x15\x96\x4a\xbc\xba\x31\xb2\x35\x1c\xb2\xd0\x95\xe7\xb3\xc1\xb9\x03\xef\x06\xd4\x78\x95\x4c\x43\xf6\x8a\xdc\x78\x74\x5e\x00\x2a\x07\xf3\xfc\xaa\xba\x27\x9c\x18\xb4\xdb\x3c\xee\x4e\x3c\xc0\xcd\xf4\xfa\x26\x07\xfc\x9f\x34\xec\x9f\x20\x5b\x12\xe2\x42\xcb\x39\xfd\x0a\xae\xcf\x39\x15\x9f\xe4\xc6\x94\xf3\xd3\xd4\xec\x3c\xbe\x54\x6f\x3f\x37\xd4\x3b\xdd\x40\x7f\x76\x51\x92\x92\x69\x9a\xf5\xae\x24\x9a\x6a\xb7\xa9\xfb\xde\xa2\x71\xce\xbd\xd4\x1a\xef\xe6\xd3\x66\x54\x0b\xe1\x35\xd6\xf0\x1b\x4d\x1f\xf6\xdf\x04\xff\x4e\xd6\xe1\x13\x48\xe6\x0a\xf3\xdf\x79\xe3\x5e\xf9\x5e\x89\x3a\xc7\x98\x01\xda\x9b\xd1\xe6\x16\x74\x30\xc2\xe3\xd6\x73\xd2\x50\x35\xd9\x02\xce\x23\xaa\x95\x78\x56\x8c\x88\xea\x01\xd4\x89\xa8\x1e\x44\xcf\x00\x55\x82\x75\x5c\x55\xbd\x78\x56\x8c\x88\xea\x01\xd4\x89\xa8\x1e\x44\xcf\x27\xa8\xc6\x4d\x70\xa2\xd6\x72\xb3\xa8\x64\x70\x18\x62\xfb\xbb\xc1\xfb\xf7\x33\xce\x67\x4a\x25\x83\x3f\xfe\xfe\x2f\x08\x1f\x4e\xb1\x88\xf5\x8b\x69\x1c\xa0\x5e\x9f\xd5\x45\xd6\x23\xeb\x91\xf5\x33\xd3\xd8\xb3\xee\x60\xa7\xfb\xa3\xe6\x11\x9e\x80\x7e\x28\xf8\xb2\x57\xd8\xb3\x3a\x07\x3d\x6e\x4b\xcf\xe7\x34\xf4\x28\xba\x05\xab\x63\xfb\x42\x46\x04\x27\x82\x13\xc1\x19\x72\x99\xc0\xde\xe6\x89\xb0\x8c\x15\x96\x61\x1b\x95\xc1\xc7\x70\x84\x2a\x03\x0b\xa9\x8e\xc5\x47\xb4\xef\x1b\x01\x60\xa7\xd4\x3a\x84\xd2\x5d\xff\x8b\x5c\x9e\x2f\x97\x91\xbc\xe3\xa9\x19\xb2\x15\xde\x89\x8d\x8c\x45\xc6\x22\x63\x87\x66\x6c\x29\x25\x03\x2c\x46\x47\xd7\x27\x4c\xa8\xfc\x25\x97\x45\xdf\x35\xab\x50\xa4\xfa\x76\xde\xef\x81\x03\x19\x0a\x6d\x9d\x9d\x76\x37\xc2\x0e\xa1\x29\x4a\x1e\x31\x2b\x4c\x49\x3f\x36\x3b\xae\x2b\xc9\xb5\xdb\x1c\x34\xd3\x5c\x05\xbf\x11\x21\xf4\xc7\xc0\xf1\x7b\x22\x7e\xcf\x52\xcb\x53\xcd\x05\xf3\x0d\x0d\x87\x71\xbf\x90\xe9\x1a\xd2\x07\x20\x9f\xbd\x3a\xad\x5d\x67\x21\xde\x85\x01\x57\xd3\xce\xf4\xef\xd6\x94\x91\x1c\x44\xa8\x7a\x4f\x5e\x61\xb0\xd7\xfb\x9f\xcc\x08\xf6\xbf\x90\xc4\xab\xa9\xf1\x6a\xea\xd9\xf6\xd2\xc4\xff\x5d\x4e\xca\xc9\xdf\x01\x00\x00\xff\xff\x70\x0e\x1a\xc6\x68\x38\x00\x00")
|
||||
var _yaoFieldsModelTransJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x9b\x4d\x6f\xdb\x36\x18\xc7\xef\xfe\x14\x84\x96\xc3\x06\x18\x41\xb6\xc3\x0e\xbe\xb5\x4d\xb2\x66\x18\xda\xa1\x36\x7a\x19\x76\xa0\xc4\x27\x36\x17\xbe\x68\x22\x15\x37\x75\xf5\xdd\x07\x52\xa2\x25\x2a\x92\xab\x6e\x7e\x51\x3c\xf6\xd0\x4a\xcf\xf3\xf0\xed\x4f\xfe\x48\xca\x64\x37\x13\x84\xa2\x47\x9c\x51\x1c\x33\x50\xd1\x0c\x19\x03\x42\x51\x22\x99\xcc\xcc\x2b\x8a\xd2\x8c\x72\x9c\x3d\x45\x33\x14\x7d\x77\x7b\x7b\x73\x73\x75\x15\xa1\x62\x82\x50\x31\x9d\x98\xc4\x98\x51\xac\x9a\x49\x95\xce\xa8\x58\x9a\x70\x02\xf7\x38\x67\x3a\x9a\x56\x79\xae\x70\xd6\x61\xe6\x40\x68\xce\x17\xf0\x49\x1b\xa7\x36\xff\x56\x1e\x26\xc5\xb2\xcb\x1e\x53\x51\x55\xa8\x69\x25\x58\x83\xa6\x1c\x16\x9f\x6d\x21\xd5\x9b\xf3\xd6\x9e\xb6\x55\x69\xcc\xd3\xda\x65\x5f\x6b\xbf\x78\xba\x13\x1a\x96\x60\x6b\x4e\xab\x47\xcf\x9b\x64\xc0\x41\x68\xd5\x11\x90\x0b\x45\x97\x02\xc8\x62\x67\x36\x8a\x63\xc6\xbe\xea\xde\x51\x4c\x4c\x97\xfd\xc9\xad\x73\x40\x1d\x5f\x7b\x99\x38\xeb\x5d\x77\xf0\xbc\x55\xe5\x9e\xf0\xbb\x6b\x5b\x20\x71\xef\xd4\xaf\xc8\xd6\x4e\x20\xa1\x1c\x33\x63\xbc\x67\x12\xd7\x5d\x2a\xf3\x98\xc1\x33\xb3\x2b\xed\xba\x4e\xe6\x4c\xb7\x9d\x71\xdb\x6c\x3a\xc3\x7e\x9d\xbf\x7f\x67\x9c\x7f\x29\x29\x9c\xcd\x3c\xc7\x6d\xa3\x09\x7c\xdd\x36\xe6\x39\x25\x1d\xa3\x9a\xa6\xaf\x08\xc9\x40\xa9\xae\x11\x8f\x93\x0e\x67\x8d\xd4\x3d\x05\x46\x1a\x44\xb9\x08\x67\xb0\x21\x4c\x5b\xe9\x9d\x05\xa1\xe8\x01\x2c\x13\x17\x1b\x86\x63\x60\xe8\xcb\x17\x94\x48\x6e\xd4\x36\x8f\x02\x73\x28\xaa\x0a\x38\x88\x6c\xbd\xd7\x2b\xc8\xe0\xf2\x62\x63\x03\x2e\x39\xd6\xc9\xaa\x19\x06\x84\x6a\xaf\x18\x33\xee\x9f\x52\xab\xe6\x9d\x48\x73\xdd\x08\x46\x66\xb2\x90\xa9\xaa\xe6\x0d\x86\x13\x58\x49\x46\xca\x21\x72\xf1\xdb\xf7\x29\x03\xac\x00\x51\x93\xec\x07\xf4\xbc\x9e\x45\x39\xb1\x94\x7f\xdc\x53\x31\xdd\xb6\x59\x66\x7c\x1f\x2d\xae\xda\x3a\xd2\x56\x6a\x5c\x8e\xd5\x43\x34\xf3\x91\xc2\xba\xaf\x99\x8b\x7a\x2a\x6d\xb7\xb2\x51\xdd\x51\x69\x36\xa9\xaa\x54\x52\x02\x22\xe7\xc7\x40\x04\xfe\x1e\x3a\x72\xe6\xc0\x20\xe9\x93\xa1\x61\x44\x3b\x24\x51\x36\x8f\x6e\x4d\xa6\x7e\x1e\x32\xd5\x54\x0a\x3b\xa7\x5c\x5c\x96\x65\xbf\xb7\xa6\x4d\xe9\x29\xa2\x46\xfc\x08\x41\x7b\xa9\x72\x1d\x92\x58\x2a\x2c\x9b\x78\x79\x63\x84\x6b\x38\x64\xae\x2b\xcf\x47\x03\x75\x07\xe4\x0d\xb4\xf1\x32\x9a\xfa\x04\xe6\x99\xf1\xe8\x2c\x07\x54\x0c\xa6\xfa\x85\x75\x90\x3f\x3d\xe8\x72\x23\xb9\x39\xf1\x20\x37\xd3\xec\xab\x0c\xf0\x7f\x53\x71\xc7\x44\xd9\x12\x11\xe7\x5a\xce\xe9\x67\x28\xfb\x9d\x53\xf1\x41\xae\x4d\x49\x3f\x4d\xcd\x3e\xe4\x53\xf5\xf6\x73\x43\xbf\xd3\x0d\xf6\x9d\xcb\x93\x94\x4c\xd3\xb4\x77\x4d\xd1\x54\x97\x5b\xbc\xaf\x2d\x1e\xe7\xdd\x4f\xad\x31\x6f\x3e\x75\x46\xb5\x24\x5e\x63\x0d\xbf\xd3\xe4\x61\xfb\x8d\xf0\x2f\x85\xfd\x86\x69\x24\x2d\x8b\x73\x5f\x7e\xe3\x5e\x03\x5f\x8c\x3e\xc7\x98\x07\xda\x9b\xd3\xe6\x96\x74\x30\xc8\x63\x57\x74\xd2\xd0\x35\x7a\x02\x9c\x05\x60\xb7\xf2\x59\x39\x02\xb0\x7b\xd1\x27\x00\xbb\x27\x45\x3d\x60\x09\xd6\x61\x85\xad\xe5\xb3\x72\x04\x60\xf7\xa2\x4f\x00\x76\x4f\x8a\x3e\x03\x36\x6c\x8b\x11\x8a\xd4\x4a\xae\x17\x95\x10\x25\x8c\xd8\xfe\xa2\xf0\xf6\xed\x8c\xf3\x99\x52\xd1\xe0\x4f\xc2\xff\x0f\xc8\xfb\xd3\x2c\xc0\x7d\x40\x95\x3d\xe0\xeb\x33\xbd\x40\x7c\x20\x3e\x10\x7f\x96\x2a\x3b\xe2\x4b\xe4\xe9\xf6\x60\x7a\x84\xe7\xa5\xef\x72\x1e\xf7\x4a\x7b\x66\xa7\xa6\xc7\x6e\xeb\xf9\x9c\x9d\x1e\x49\x39\x6f\xa5\x6c\x5f\xe2\x08\xf8\x04\x7c\x02\x3e\xc3\x2f\x20\xd8\x7b\x40\x01\x99\xf1\x22\x33\x70\xe3\x32\xfc\xd0\x8e\x50\x65\x90\x21\xd5\x51\xfa\x88\x76\x82\x23\xc0\xec\xb4\x6a\xfb\x68\x96\xd7\x07\x03\x9d\xe7\x4d\x67\xe0\xef\x98\x7a\xfa\x84\xf9\x37\x6b\x03\x69\x81\xb4\x40\xda\x61\x48\x8b\xa5\x64\x80\xc5\xe8\x18\xfb\x80\x09\x95\xbf\x64\x32\xef\xbb\xa4\xe5\xcb\x54\xdf\xee\xfb\xc3\x73\x20\xc3\xa2\xad\xb3\xc9\x74\x36\xbb\x11\x76\x10\x4d\x51\xf4\x88\x59\x6e\x4a\xfa\xb1\xd9\x75\x5d\x49\xae\xcb\x8d\x42\x33\xcd\x95\xf7\x0b\x12\x42\x7f\x0e\x1c\xc1\x27\x62\xf8\x2c\xb5\x3c\xd5\x6c\x30\x5f\x53\x7f\x18\xf7\x0b\x99\xac\x20\x79\x00\xf2\xd1\xa9\xd3\xda\x81\xe6\xe2\x8d\x1f\x70\x35\xed\x4c\xff\x66\x45\x19\xc9\x40\xf8\xaa\xf7\xe4\xe5\x07\x3b\xbd\xbf\x65\x46\xb0\xff\x1d\x25\x5c\x6d\x0d\x57\x5b\xcf\xba\x9f\x26\xee\xef\x62\x52\x4c\xfe\x09\x00\x00\xff\xff\x0c\x3d\x31\x45\xb8\x38\x00\x00")
|
||||
|
||||
func yaoFieldsModelTransJsonBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
|
|
@ -590,7 +596,7 @@ func yaoFieldsModelTransJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14440, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14520, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -610,7 +616,7 @@ func yaoFlowsReadmeMd() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/flows/README.md", size: 12, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/flows/README.md", size: 12, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -630,7 +636,7 @@ func yaoFlowsAdminGuardFlowJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/flows/admin/guard.flow.json", size: 559, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/flows/admin/guard.flow.json", size: 559, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -650,7 +656,7 @@ func yaoFlowsMenuFlowJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/flows/menu.flow.json", size: 1045, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/flows/menu.flow.json", size: 1045, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -670,7 +676,7 @@ func yaoFlowsUserFindFlowJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/flows/user/find.flow.json", size: 328, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/flows/user/find.flow.json", size: 328, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -690,7 +696,127 @@ func yaoLangsEnUsJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _yaoLangsZhCnGlobalYml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x54\x5d\x4f\xe3\x46\x14\x7d\x9f\x5f\x71\x35\x12\x52\xfb\xd2\x1f\xe0\x37\x54\xb2\x6d\xa4\x5d\x88\x08\xad\xfa\x6a\x92\x21\xb8\x4a\x66\x2c\xdb\x81\x6e\x9f\xd8\xb2\x40\x20\x84\x04\xf1\xb1\x1f\x18\xa8\x17\x10\x5e\x75\x89\xb3\xed\x76\xa1\x21\x81\xff\x82\x72\xc7\xce\xbf\xa8\x66\xcc\x87\x4a\xb5\x6f\x9e\xf1\x99\x33\x77\xce\x39\xf7\xe6\x3d\xd3\xf1\x20\xc3\x4b\x16\x67\x06\x50\x6c\x45\xb8\x16\x26\x1f\x83\x41\xef\x77\xec\x6e\xc7\xdb\x21\xf6\x76\xe4\xd6\x06\x25\x13\x9c\x81\x70\xa0\x22\x1c\x06\xa6\x53\xaa\x56\x18\xf7\x5c\x30\x1d\x06\x5c\x78\x50\x10\x8e\xc3\x0a\x9e\x62\x68\xfe\x26\x77\x3a\xc3\xed\x37\x49\x14\x51\x32\x6a\xdb\x65\xab\x60\x7a\x96\xe0\x50\xb4\x14\x44\x38\xcf\x0d\xa0\x72\x7d\x05\xdb\x6f\xd3\x1b\x92\xf3\x08\xaf\x5e\x52\x92\xe1\x73\x96\x23\xb8\x22\x86\x19\xab\xcc\xee\x61\xf1\x46\x84\xef\x16\xb1\xf9\x7a\xb8\xd2\x94\xbb\x2b\x83\xcb\xcf\x94\x7c\xcf\xca\x36\xcc\x08\x07\x9e\x9b\x42\x01\x5f\x5f\xc5\xc7\x5d\xdc\xec\x0f\x2e\x8f\xf1\xa2\x8d\x6b\xef\xe5\xee\x8a\x0c\x8e\x28\xc9\xcf\x8a\x79\x30\x6d\x1b\x0a\x82\xcf\x58\xa5\xaa\xc3\x1e\xe0\xfa\xfa\xe1\x52\x23\xee\xb7\x07\xd7\x81\x7c\x11\x51\xf2\x83\x5d\x34\x3d\x06\x45\xd3\x33\xa7\x4d\x97\x81\x5b\x98\x65\x15\x53\x1d\xd9\xfb\x24\x77\x3b\x72\xa7\x23\x1b\xed\x24\x08\xe3\xcb\x2d\x79\xa0\x8a\xfe\x85\x15\xaa\x1e\x03\xdb\x11\x05\xe6\xba\x06\xd0\xe4\xba\x95\x04\xeb\x78\xfc\x32\x6e\x2d\xe3\x9b\xf0\xb6\x82\x39\xe6\xb8\x96\xe0\x0f\x77\xf7\xb7\x70\xb5\x11\xaf\xd6\xa4\xff\x01\x9b\xe7\x94\x8c\xb1\x39\x56\x16\xb6\x7e\x7d\x45\x14\x55\x95\x83\xfe\xb5\x36\x60\x01\x9b\x9b\x32\x0c\xb0\xd7\x4c\xed\x51\x52\x99\xd3\x65\x56\x84\x2a\x77\x3d\xf5\x05\x33\xcc\xf4\xaa\x0e\x73\x53\x0b\xd5\xa9\xe5\x25\xf9\x77\x1d\xd7\x0e\x93\xc5\x3e\x25\xf4\x89\xe9\x99\x65\x03\x46\x5c\xaa\x10\xc7\x1f\x93\x4f\x27\x7a\x45\xf2\xcc\x99\xb3\x0a\x0c\x5c\x4f\xd8\x36\x2b\xaa\xfa\xfc\x06\xae\x05\x78\xfe\x27\x2e\xfd\x35\x7c\x75\x46\xc9\x68\x2e\x6b\x00\x85\xd1\x5c\x56\x6e\x9c\x60\xf3\x48\xef\xc0\x53\xcb\x55\x76\x8f\xe6\xb2\x58\x7b\x95\x04\x21\x25\x93\x42\xe8\x00\x68\x55\xe3\xbd\x36\xf6\x77\x28\x79\xe2\x08\xee\x31\xae\x88\x71\xb5\x81\xcd\x0e\xfa\x1d\xdc\x5f\xa0\x64\xcc\x74\x67\xa7\x85\xe9\xa8\x3f\x71\x3b\x50\x62\xb5\x36\xb0\xd9\xa1\x64\x5c\x78\xc0\xb8\xa8\x96\x66\x1f\x82\xf6\x28\x58\x06\xc4\xbd\x2e\x76\x36\xd3\x3d\x4a\xe8\x64\x95\xdf\xbd\x2e\xd5\x3f\x7d\x1d\x1d\x7d\x20\xb8\x7d\xfb\x7f\x58\x34\x66\xc4\x85\x49\xe6\xda\x82\xbb\x4c\x21\x46\x5c\x48\xae\xb7\x71\xef\x40\x5b\xec\x53\x42\x6f\x33\x91\x46\x41\x9b\xa3\xa5\x84\xaf\x46\xdc\xaf\x81\xde\x67\xe3\x3e\x15\x8f\x20\x94\x3c\x53\x6b\xe0\x66\x45\x67\x2f\x0c\xf0\xa0\x8e\xad\x46\x7c\xda\xa1\x24\xcb\x2d\xcf\x32\xcb\xd6\xaf\x3a\x42\x3f\xa7\x3d\x34\x0c\xfe\x51\xfa\xd5\xf6\xf1\xb4\x8e\xeb\xbb\x94\xdc\xf8\xe1\xd8\xc4\x78\xe6\xc6\x0f\x0d\xa0\x37\x7e\x88\xed\x75\x59\x6b\xdd\xf8\x21\x25\x74\x3c\xf3\xd3\x94\xa1\xaa\x18\x5c\xd4\x07\x17\x0b\xf2\xec\xc4\xa0\x44\xb9\xc3\xb8\xc5\x4b\xca\x39\x00\x88\xf7\x36\xb1\xf5\x41\x13\x3d\xcd\xe6\xa7\x32\xe3\xd9\xf1\xef\xee\xd9\x52\xc7\xe5\xd9\x11\xfa\x61\xaa\x9e\x66\xbe\xf1\xc3\xfc\xd4\x44\x2e\x97\x19\x7b\x84\x54\xd9\x78\xe1\xcb\xb3\x77\x1a\x96\x67\xae\x4a\x76\x4e\x38\xaa\xf4\x41\xef\x6d\x12\xed\xa7\xb8\xf8\x8f\x48\xc7\xe5\x89\x70\x0a\x0c\x2a\x56\xc9\x31\x3d\x3d\x64\x7a\x5d\xac\x7d\xfe\x42\x43\x3d\x4b\x61\x60\xb9\x7a\xb0\x98\xe5\xb2\x98\x67\x45\x10\x5c\xe9\x53\xac\x16\xf4\x28\x51\x02\x7f\x63\x00\xbd\x03\x0f\x2e\x1a\xc9\x62\x1f\x97\x1b\xf1\xf6\xe1\xa0\x7b\x9a\x0e\x0c\xa5\x87\xee\x20\x4a\xbe\x75\x98\xbe\x1a\x6b\x7b\x78\xd9\x25\x99\xa2\xe5\xa9\x08\xed\x26\x57\x9b\xe4\x47\x8b\xcd\x1b\x20\x0f\x4f\x62\xbf\x4e\xec\x32\x53\x5d\x6f\x71\xbb\xea\x19\x90\x44\xe7\xc9\xd5\x16\x2e\x9d\x90\xdc\x17\xf6\x6f\xf1\x2e\x2b\x6b\xe7\x92\xe8\x7c\xb8\xb0\x2a\xeb\xef\xef\x0e\xfc\xff\x47\xda\xba\x06\xa8\xb6\x6e\x45\x64\xcc\x72\x6f\xd7\xba\xdb\xc8\xbf\x01\x00\x00\xff\xff\x5f\x71\xee\xbf\x90\x05\x00\x00")
|
||||
|
||||
func yaoLangsZhCnGlobalYmlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_yaoLangsZhCnGlobalYml,
|
||||
"yao/langs/zh-cn/global.yml",
|
||||
)
|
||||
}
|
||||
|
||||
func yaoLangsZhCnGlobalYml() (*asset, error) {
|
||||
bytes, err := yaoLangsZhCnGlobalYmlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1424, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _yaoLangsZhCnLoginsAdminLoginYml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x00\x5e\x00\xa1\xff\x4d\x61\x6b\x65\x20\x59\x6f\x75\x72\x20\x44\x72\x65\x61\x6d\x20\x57\x69\x74\x68\x20\x59\x61\x6f\x20\x41\x70\x70\x20\x45\x6e\x67\x69\x6e\x65\x3a\x20\xe6\xa2\xa6\xe6\x83\xb3\xe8\xae\xa9\xe6\x88\x91\xe4\xbb\xac\xe4\xb8\x8e\xe4\xbc\x97\xe4\xb8\x8d\xe5\x90\x8c\x0a\x41\x64\x6d\x69\x6e\x20\x4c\x6f\x67\x69\x6e\x3a\x20\xe7\xae\xa1\xe7\x90\x86\xe5\x91\x98\xe7\x99\xbb\xe5\xbd\x95\x0a\x01\x00\x00\xff\xff\xc8\x77\x62\xf0\x5e\x00\x00\x00")
|
||||
|
||||
func yaoLangsZhCnLoginsAdminLoginYmlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_yaoLangsZhCnLoginsAdminLoginYml,
|
||||
"yao/langs/zh-cn/logins/admin.login.yml",
|
||||
)
|
||||
}
|
||||
|
||||
func yaoLangsZhCnLoginsAdminLoginYml() (*asset, error) {
|
||||
bytes, err := yaoLangsZhCnLoginsAdminLoginYmlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _yaoLangsZhCnLoginsUserLoginYml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x00\x5a\x00\xa5\xff\x4d\x61\x6b\x65\x20\x59\x6f\x75\x72\x20\x44\x72\x65\x61\x6d\x20\x57\x69\x74\x68\x20\x59\x61\x6f\x20\x41\x70\x70\x20\x45\x6e\x67\x69\x6e\x65\x3a\x20\xe6\xa2\xa6\xe6\x83\xb3\xe8\xae\xa9\xe6\x88\x91\xe4\xbb\xac\xe4\xb8\x8e\xe4\xbc\x97\xe4\xb8\x8d\xe5\x90\x8c\x0a\x55\x73\x65\x72\x20\x4c\x6f\x67\x69\x6e\x3a\x20\xe7\x94\xa8\xe6\x88\xb7\xe7\x99\xbb\xe5\xbd\x95\x0a\x01\x00\x00\xff\xff\xac\x02\x43\xa0\x5a\x00\x00\x00")
|
||||
|
||||
func yaoLangsZhCnLoginsUserLoginYmlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_yaoLangsZhCnLoginsUserLoginYml,
|
||||
"yao/langs/zh-cn/logins/user.login.yml",
|
||||
)
|
||||
}
|
||||
|
||||
func yaoLangsZhCnLoginsUserLoginYml() (*asset, error) {
|
||||
bytes, err := yaoLangsZhCnLoginsUserLoginYmlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _yaoLangsZhHkGlobalYml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x54\x5d\x4f\x1b\x47\x14\x7d\x9f\x5f\x71\x35\x12\x52\xfb\xd2\x1f\xb0\x6f\xa8\x38\xad\xa5\x04\x2c\x4c\xab\xbe\x2e\xf6\x60\xb6\x5a\xcf\xac\x76\xd6\xd0\xf4\x29\xd4\x25\xc6\xac\x1d\x43\xc1\x46\x84\x0d\xae\xf9\x10\x9b\x10\x6c\x93\x36\xe0\x82\x1d\xfe\x0b\xf2\xcc\xae\xff\x45\x35\xbb\xc6\x51\xa9\xf2\xe6\x99\x3d\x3e\x73\xef\x39\xe7\xde\xb4\xa3\xdb\x0e\x24\x68\xce\xa0\x44\x03\x2c\xea\x4d\xe1\xd6\x45\xb1\x26\x7e\xfb\x4b\x96\xca\xc1\xae\x2f\xfa\x75\xb9\xf3\x0a\xa3\x39\x4a\x80\xd9\x90\x67\x36\x01\xdd\xce\x15\xf2\x84\x3a\x1c\x74\x9b\x00\x65\x0e\x64\x98\x6d\x93\x8c\xa3\x18\x6a\x45\x59\xef\x8d\x2a\x9d\xf0\xdd\x09\x46\xd3\x96\x65\x1a\x19\xdd\x31\x18\x85\xac\xa1\x20\xcc\x7e\xae\x01\x96\x95\x92\x68\xbf\x8e\x5f\x08\xaf\x3b\xe2\xd3\x36\x46\x09\xba\x62\xd8\x8c\x2a\x62\x58\x32\x4c\x32\x81\x05\x7f\x74\xc5\x51\x31\x6c\x6f\x8e\x4a\x35\xd9\x28\x0d\x6f\xaf\x30\xfa\x9e\x98\x16\x2c\x31\x1b\x9e\xeb\x4c\x03\x3c\x6a\x75\x82\x93\x1b\xb1\x3d\x18\xde\x9e\x88\x7f\xce\xc5\xe6\x5b\xd9\x28\xc9\x77\xbb\x18\xa5\x97\xd9\x2a\xe8\x96\x05\x19\x46\x97\x8c\x5c\xc1\x26\x13\x78\xfc\xfc\x68\xbd\x1a\x0c\xda\xc3\xbb\x96\x5c\xeb\x60\xf4\x83\x95\xd5\x1d\x02\x59\xdd\xd1\x17\x75\x4e\x80\x67\x96\x49\x5e\x57\xa5\x1c\xfc\x2d\x1b\x5d\x59\xef\xc9\x9d\xd7\x61\xcb\x0f\x3e\x6e\xc9\x33\x17\xa3\xc4\x2f\x24\x53\x70\x08\x58\x36\xcb\x10\xce\x15\xf7\x9a\x1b\xb6\x2a\xe1\x7e\x3d\xd8\x7a\x29\xf6\xfd\x71\x05\x2b\xc4\xe6\x06\xa3\x93\xb7\x83\xfa\x95\x28\x57\x83\xf2\x86\xf4\xde\x87\xfb\x4d\x8c\x66\xc8\x0a\x31\x99\x15\x75\x9f\x67\x59\x55\xe5\x70\x70\xa7\xea\x6b\xb8\xc1\x7e\x5f\xfa\x2d\xd1\xaf\xc5\xf6\x28\xa9\xf4\x45\x93\x64\xa1\x40\xb9\xa3\x7e\xc1\x12\xd1\x9d\x82\x4d\x78\x6c\xa1\xb2\x6d\xfd\x4c\xf6\xde\x8b\xcd\x66\x58\x1c\x60\x84\x9f\xe8\x8e\x6e\x6a\x30\xc5\xb1\x42\x9c\x5c\xca\xfa\x5e\x74\x42\x69\x62\xaf\x18\x19\x02\xdc\x61\x96\x45\xb2\xaa\x51\xaf\x2a\xdc\x7d\x71\xfd\x61\xb4\xe7\x8d\x1a\x65\x8c\xa6\x53\x49\x0d\x30\x4c\xa7\x92\xf2\xd5\xa9\xa8\x1d\x47\x37\xf0\xd4\xe0\xca\xee\xe9\x54\x52\x6c\xec\x85\x2d\x1f\xa3\x79\xc6\xd4\x4d\xac\x6a\x70\xd0\x1e\x55\x7e\xc7\xe8\x89\xcd\xa8\x43\xa8\x22\x16\xe5\xaa\xa8\x75\x85\xd7\x15\x6f\x5e\x60\x34\xa3\xf3\xe5\x45\xa6\xdb\xea\x4b\xd0\x6e\x29\xb1\x3e\x55\x44\xad\x8b\xd1\x2c\x73\x80\x50\x56\xc8\x2d\x7f\x0e\xda\xa3\x60\x69\x10\xf4\x6f\x44\x77\x3b\xbe\xc3\x08\xcf\x17\xe8\x43\x77\xb1\xfe\x71\x77\x78\xfa\x33\xc1\xb8\xf7\xff\xb0\x44\x98\x29\x0e\xf3\x84\x5b\x8c\x72\xa2\x10\x53\x1c\xc2\xbb\x5d\x71\x70\xa8\x2c\x3e\xf4\x30\xc2\xe3\x4c\xc4\x51\x88\xcc\x89\xa4\x84\xaf\xa6\xf8\xd7\x80\x27\xd9\x98\xa4\xe2\x11\x04\xa3\x67\xea\x0c\x54\xcf\x47\x99\xf6\x5b\xe2\xd0\x15\x5b\xd5\xc0\xbf\xc4\x28\x49\x0d\xc7\xd0\x4d\xe3\xd7\x28\x42\x3f\xc7\x33\x34\xfa\x73\x3d\x38\x68\x8b\x8d\x37\xe2\xcc\x15\x95\x06\x46\xf7\x9e\x3f\x33\x37\x9b\xb8\xf7\x7c\x0d\xf0\xbd\xe7\x8b\x76\x45\x6e\x6c\xdd\x7b\x3e\x46\x78\x36\xf1\xd3\x82\xa6\xaa\x18\xf6\xdc\x61\xef\x85\xbc\x38\xd5\x30\x52\xee\x10\x6a\xd0\x9c\x72\x0e\x00\x82\x83\xe3\x70\x6d\x10\x11\x3d\x4d\xa6\x17\x12\xb3\xc9\xd9\xef\x26\x6c\xb1\xe3\xf2\xe2\x58\x78\x7e\xac\x5e\xc4\x7c\xef\xf9\xe9\x85\xb9\x54\x2a\x31\xf3\x08\x29\xae\x3f\x88\x35\x4f\x5e\x1c\x45\xb0\x34\xe1\x2a\xd9\x29\x66\x47\xee\x7b\xc5\xf0\xed\x65\x8c\x0b\xce\x3b\x51\x5c\x9e\x30\x3b\x43\x20\x6f\xe4\x6c\xdd\x89\x96\x4c\xff\x5a\x6c\x5c\x7d\x61\xa0\x9e\xc5\x30\x30\x78\xb4\x58\x74\xd3\x64\xab\x24\x0b\x8c\x2a\x7d\xb2\x85\x4c\xb4\x4a\x94\xc0\xdf\x68\x80\x1f\xc0\xc3\x5e\x35\x2c\x0e\xc4\xcb\x6a\xb0\xdb\x0c\x76\x8f\xe2\x85\xa1\xf4\x88\x26\x08\xa3\x6f\x6d\x12\x3d\x2d\xca\x1f\xc5\xed\x0d\x4a\x64\x0d\x47\x83\xe0\xda\x0f\xfb\x1d\xf4\xa3\x41\x56\x35\x90\xcd\xd3\xc0\x73\x91\x65\x12\x35\xf5\x06\xb5\x0a\x8e\x06\xe1\xb9\x1b\xf6\x7b\x62\xfd\x14\xa5\xbe\x70\x3f\xc6\x73\x62\x46\xce\x85\xe7\xee\x68\xad\x27\x77\x4a\x0f\x7f\xf8\xff\x87\x78\x74\x35\x18\x35\x5c\x51\x6f\xa2\x19\x83\x8f\xcf\xd1\xb4\xa1\x7f\x03\x00\x00\xff\xff\xf5\x50\xf4\x7f\x90\x05\x00\x00")
|
||||
|
||||
func yaoLangsZhHkGlobalYmlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_yaoLangsZhHkGlobalYml,
|
||||
"yao/langs/zh-hk/global.yml",
|
||||
)
|
||||
}
|
||||
|
||||
func yaoLangsZhHkGlobalYml() (*asset, error) {
|
||||
bytes, err := yaoLangsZhHkGlobalYmlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1424, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _yaoLangsZhHkLoginsAdminLoginYml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x00\x5e\x00\xa1\xff\x4d\x61\x6b\x65\x20\x59\x6f\x75\x72\x20\x44\x72\x65\x61\x6d\x20\x57\x69\x74\x68\x20\x59\x61\x6f\x20\x41\x70\x70\x20\x45\x6e\x67\x69\x6e\x65\x3a\x20\xe5\xa4\xa2\xe6\x83\xb3\xe8\xae\x93\xe6\x88\x91\xe5\x80\x91\xe8\x88\x87\xe7\x9c\xbe\xe4\xb8\x8d\xe5\x90\x8c\x0a\x41\x64\x6d\x69\x6e\x20\x4c\x6f\x67\x69\x6e\x3a\x20\xe7\xae\xa1\xe7\x90\x86\xe5\x93\xa1\xe7\x99\xbb\xe9\x8c\x84\x0a\x01\x00\x00\xff\xff\x18\x20\x26\x8e\x5e\x00\x00\x00")
|
||||
|
||||
func yaoLangsZhHkLoginsAdminLoginYmlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_yaoLangsZhHkLoginsAdminLoginYml,
|
||||
"yao/langs/zh-hk/logins/admin.login.yml",
|
||||
)
|
||||
}
|
||||
|
||||
func yaoLangsZhHkLoginsAdminLoginYml() (*asset, error) {
|
||||
bytes, err := yaoLangsZhHkLoginsAdminLoginYmlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _yaoLangsZhHkLoginsUserLoginYml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x00\x5a\x00\xa5\xff\x4d\x61\x6b\x65\x20\x59\x6f\x75\x72\x20\x44\x72\x65\x61\x6d\x20\x57\x69\x74\x68\x20\x59\x61\x6f\x20\x41\x70\x70\x20\x45\x6e\x67\x69\x6e\x65\x3a\x20\xe5\xa4\xa2\xe6\x83\xb3\xe8\xae\x93\xe6\x88\x91\xe5\x80\x91\xe8\x88\x87\xe7\x9c\xbe\xe4\xb8\x8d\xe5\x90\x8c\x0a\x55\x73\x65\x72\x20\x4c\x6f\x67\x69\x6e\x3a\x20\xe7\x94\xa8\xe6\x88\xb6\xe7\x99\xbb\xe9\x8c\x84\x0a\x01\x00\x00\xff\xff\x6a\x53\x5c\xe9\x5a\x00\x00\x00")
|
||||
|
||||
func yaoLangsZhHkLoginsUserLoginYmlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_yaoLangsZhHkLoginsUserLoginYml,
|
||||
"yao/langs/zh-hk/logins/user.login.yml",
|
||||
)
|
||||
}
|
||||
|
||||
func yaoLangsZhHkLoginsUserLoginYml() (*asset, error) {
|
||||
bytes, err := yaoLangsZhHkLoginsUserLoginYmlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -710,7 +836,7 @@ func yaoModelsReadmeMd() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/models/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/models/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -730,7 +856,7 @@ func yaoModelsMenuModJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/models/menu.mod.json", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/models/menu.mod.json", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -750,7 +876,7 @@ func yaoModelsUserModJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/models/user.mod.json", size: 8826, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/models/user.mod.json", size: 8826, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -770,7 +896,7 @@ func yaoModelsWorkflowModJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/models/workflow.mod.json", size: 3333, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/models/workflow.mod.json", size: 3333, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -790,7 +916,7 @@ func yaoTablesReadmeMd() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/tables/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/tables/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -810,7 +936,7 @@ func yaoTablesMenuTabJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/tables/menu.tab.json", size: 10471, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/tables/menu.tab.json", size: 10471, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -830,7 +956,7 @@ func yaoTablesUserTabJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "yao/tables/user.tab.json", size: 2357, mode: os.FileMode(420), modTime: time.Unix(1665057464, 0)}
|
||||
info := bindataFileInfo{name: "yao/tables/user.tab.json", size: 2357, mode: os.FileMode(420), modTime: time.Unix(1665144132, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
|
@ -887,38 +1013,44 @@ func AssetNames() []string {
|
|||
|
||||
// _bindata is a table, holding each asset generator, mapped to its name.
|
||||
var _bindata = map[string]func() (*asset, error){
|
||||
"ui/index.html": uiIndexHtml,
|
||||
"xgen/v0.9/index.html": xgenV09IndexHtml,
|
||||
"xgen/v1.0/index.html": xgenV10IndexHtml,
|
||||
"xgen/v1.0/layouts__index.async.js": xgenV10Layouts__indexAsyncJs,
|
||||
"xgen/v1.0/umi.js": xgenV10UmiJs,
|
||||
"yao/apis/README.md": yaoApisReadmeMd,
|
||||
"yao/apis/chart.http.json": yaoApisChartHttpJson,
|
||||
"yao/apis/import.http.json": yaoApisImportHttpJson,
|
||||
"yao/apis/page.http.json": yaoApisPageHttpJson,
|
||||
"yao/apis/storage.http.json": yaoApisStorageHttpJson,
|
||||
"yao/apis/table.http.json": yaoApisTableHttpJson,
|
||||
"yao/apis/user.http.json": yaoApisUserHttpJson,
|
||||
"yao/apis/xiang.http.json": yaoApisXiangHttpJson,
|
||||
"yao/data/app.json": yaoDataAppJson,
|
||||
"yao/data/icons/404.png": yaoDataIcons404Png,
|
||||
"yao/data/icons/icon.icns": yaoDataIconsIconIcns,
|
||||
"yao/data/icons/icon.ico": yaoDataIconsIconIco,
|
||||
"yao/data/icons/icon.png": yaoDataIconsIconPng,
|
||||
"yao/data/index.html": yaoDataIndexHtml,
|
||||
"yao/fields/model.trans.json": yaoFieldsModelTransJson,
|
||||
"yao/flows/README.md": yaoFlowsReadmeMd,
|
||||
"yao/flows/admin/guard.flow.json": yaoFlowsAdminGuardFlowJson,
|
||||
"yao/flows/menu.flow.json": yaoFlowsMenuFlowJson,
|
||||
"yao/flows/user/find.flow.json": yaoFlowsUserFindFlowJson,
|
||||
"yao/langs/en-US.json": yaoLangsEnUsJson,
|
||||
"yao/models/README.md": yaoModelsReadmeMd,
|
||||
"yao/models/menu.mod.json": yaoModelsMenuModJson,
|
||||
"yao/models/user.mod.json": yaoModelsUserModJson,
|
||||
"yao/models/workflow.mod.json": yaoModelsWorkflowModJson,
|
||||
"yao/tables/README.md": yaoTablesReadmeMd,
|
||||
"yao/tables/menu.tab.json": yaoTablesMenuTabJson,
|
||||
"yao/tables/user.tab.json": yaoTablesUserTabJson,
|
||||
"ui/index.html": uiIndexHtml,
|
||||
"xgen/v0.9/index.html": xgenV09IndexHtml,
|
||||
"xgen/v1.0/index.html": xgenV10IndexHtml,
|
||||
"xgen/v1.0/layouts__index.async.js": xgenV10Layouts__indexAsyncJs,
|
||||
"xgen/v1.0/umi.js": xgenV10UmiJs,
|
||||
"yao/apis/README.md": yaoApisReadmeMd,
|
||||
"yao/apis/chart.http.json": yaoApisChartHttpJson,
|
||||
"yao/apis/import.http.json": yaoApisImportHttpJson,
|
||||
"yao/apis/page.http.json": yaoApisPageHttpJson,
|
||||
"yao/apis/storage.http.json": yaoApisStorageHttpJson,
|
||||
"yao/apis/table.http.json": yaoApisTableHttpJson,
|
||||
"yao/apis/user.http.json": yaoApisUserHttpJson,
|
||||
"yao/apis/xiang.http.json": yaoApisXiangHttpJson,
|
||||
"yao/data/app.json": yaoDataAppJson,
|
||||
"yao/data/icons/404.png": yaoDataIcons404Png,
|
||||
"yao/data/icons/icon.icns": yaoDataIconsIconIcns,
|
||||
"yao/data/icons/icon.ico": yaoDataIconsIconIco,
|
||||
"yao/data/icons/icon.png": yaoDataIconsIconPng,
|
||||
"yao/data/index.html": yaoDataIndexHtml,
|
||||
"yao/fields/model.trans.json": yaoFieldsModelTransJson,
|
||||
"yao/flows/README.md": yaoFlowsReadmeMd,
|
||||
"yao/flows/admin/guard.flow.json": yaoFlowsAdminGuardFlowJson,
|
||||
"yao/flows/menu.flow.json": yaoFlowsMenuFlowJson,
|
||||
"yao/flows/user/find.flow.json": yaoFlowsUserFindFlowJson,
|
||||
"yao/langs/en-US.json": yaoLangsEnUsJson,
|
||||
"yao/langs/zh-cn/global.yml": yaoLangsZhCnGlobalYml,
|
||||
"yao/langs/zh-cn/logins/admin.login.yml": yaoLangsZhCnLoginsAdminLoginYml,
|
||||
"yao/langs/zh-cn/logins/user.login.yml": yaoLangsZhCnLoginsUserLoginYml,
|
||||
"yao/langs/zh-hk/global.yml": yaoLangsZhHkGlobalYml,
|
||||
"yao/langs/zh-hk/logins/admin.login.yml": yaoLangsZhHkLoginsAdminLoginYml,
|
||||
"yao/langs/zh-hk/logins/user.login.yml": yaoLangsZhHkLoginsUserLoginYml,
|
||||
"yao/models/README.md": yaoModelsReadmeMd,
|
||||
"yao/models/menu.mod.json": yaoModelsMenuModJson,
|
||||
"yao/models/user.mod.json": yaoModelsUserModJson,
|
||||
"yao/models/workflow.mod.json": yaoModelsWorkflowModJson,
|
||||
"yao/tables/README.md": yaoTablesReadmeMd,
|
||||
"yao/tables/menu.tab.json": yaoTablesMenuTabJson,
|
||||
"yao/tables/user.tab.json": yaoTablesUserTabJson,
|
||||
}
|
||||
|
||||
// AssetDir returns the file names below a certain
|
||||
|
|
@ -1011,6 +1143,20 @@ var _bintree = &bintree{nil, map[string]*bintree{
|
|||
}},
|
||||
"langs": {nil, map[string]*bintree{
|
||||
"en-US.json": {yaoLangsEnUsJson, map[string]*bintree{}},
|
||||
"zh-cn": {nil, map[string]*bintree{
|
||||
"global.yml": {yaoLangsZhCnGlobalYml, map[string]*bintree{}},
|
||||
"logins": {nil, map[string]*bintree{
|
||||
"admin.login.yml": {yaoLangsZhCnLoginsAdminLoginYml, map[string]*bintree{}},
|
||||
"user.login.yml": {yaoLangsZhCnLoginsUserLoginYml, map[string]*bintree{}},
|
||||
}},
|
||||
}},
|
||||
"zh-hk": {nil, map[string]*bintree{
|
||||
"global.yml": {yaoLangsZhHkGlobalYml, map[string]*bintree{}},
|
||||
"logins": {nil, map[string]*bintree{
|
||||
"admin.login.yml": {yaoLangsZhHkLoginsAdminLoginYml, map[string]*bintree{}},
|
||||
"user.login.yml": {yaoLangsZhHkLoginsUserLoginYml, map[string]*bintree{}},
|
||||
}},
|
||||
}},
|
||||
}},
|
||||
"models": {nil, map[string]*bintree{
|
||||
"README.md": {yaoModelsReadmeMd, map[string]*bintree{}},
|
||||
|
|
|
|||
2
go.mod
2
go.mod
|
|
@ -101,7 +101,7 @@ require (
|
|||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
rogchap.com/v8go v0.7.0 // indirect
|
||||
)
|
||||
|
||||
|
|
|
|||
71
lang/lang.go
71
lang/lang.go
|
|
@ -1,12 +1,15 @@
|
|||
package lang
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/yaoapp/gou/lang"
|
||||
"github.com/yaoapp/kun/log"
|
||||
"github.com/yaoapp/yao/config"
|
||||
"github.com/yaoapp/yao/data"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
|
@ -21,8 +24,13 @@ func init() {
|
|||
|
||||
// Load language packs
|
||||
func Load(cfg config.Config) error {
|
||||
err := loadFromBin()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
root := filepath.Join(cfg.Root, "langs")
|
||||
err := lang.Load(root)
|
||||
err = lang.Load(root)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -40,3 +48,64 @@ func Load(cfg config.Config) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func loadFromBin() error {
|
||||
|
||||
dirs := map[string][]struct {
|
||||
File string
|
||||
Widget string
|
||||
Instance string
|
||||
IsGlobal bool
|
||||
}{
|
||||
"zh-cn": {
|
||||
{File: "yao/langs/zh-cn/global.yml", IsGlobal: true},
|
||||
{File: "yao/langs/zh-cn/logins/admin.login.yml", Widget: "login", Instance: "admin"},
|
||||
{File: "yao/langs/zh-cn/logins/user.login.yml", Widget: "login", Instance: "user"},
|
||||
},
|
||||
"zh-hk": {
|
||||
{File: "yao/langs/zh-hk/global.yml", IsGlobal: true},
|
||||
{File: "yao/langs/zh-hk/logins/admin.login.yml", Widget: "login", Instance: "admin"},
|
||||
{File: "yao/langs/zh-hk/logins/user.login.yml", Widget: "login", Instance: "user"},
|
||||
},
|
||||
}
|
||||
|
||||
for langName, files := range dirs {
|
||||
|
||||
dict := &lang.Dict{
|
||||
Name: langName,
|
||||
Global: lang.Words{},
|
||||
Widgets: map[string]lang.Widget{},
|
||||
}
|
||||
|
||||
for _, f := range files {
|
||||
data, err := data.Read(f.File)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s: %s", f.File, err.Error())
|
||||
}
|
||||
|
||||
words := lang.Words{}
|
||||
err = yaml.Unmarshal(data, &words)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s: %s", f.File, err.Error())
|
||||
}
|
||||
|
||||
if f.IsGlobal {
|
||||
dict.Global = words
|
||||
continue
|
||||
}
|
||||
|
||||
if _, has := dict.Widgets[f.Widget]; !has {
|
||||
dict.Widgets[f.Widget] = map[string]lang.Words{}
|
||||
}
|
||||
dict.Widgets[f.Widget][f.Instance] = words
|
||||
}
|
||||
|
||||
if _, has := lang.Dicts[langName]; has {
|
||||
lang.Dicts[langName].Merge(dict)
|
||||
continue
|
||||
}
|
||||
|
||||
lang.Dicts[langName] = dict
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ import (
|
|||
|
||||
func TestLoad(t *testing.T) {
|
||||
share.DBConnect(config.Conf.DB)
|
||||
Load(config.Conf)
|
||||
err := Load(config.Conf)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Len(t, lang.Dicts, 2)
|
||||
}
|
||||
|
|
|
|||
74
widgets/component/lang.go
Normal file
74
widgets/component/lang.go
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
package component
|
||||
|
||||
// Trans trans
|
||||
func (column *DSL) Trans(widgetName string, inst string, trans func(widget string, inst string, value *string) bool) bool {
|
||||
return transMap(column.Props, widgetName, inst, trans)
|
||||
}
|
||||
|
||||
func transMap(value map[string]interface{}, widgetName string, inst string, trans func(widget string, inst string, value *string) bool) bool {
|
||||
res := false
|
||||
for key, val := range value {
|
||||
|
||||
switch val.(type) {
|
||||
case map[string]interface{}:
|
||||
if transMap(val.(map[string]interface{}), widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
break
|
||||
|
||||
case []interface{}:
|
||||
if transArr(val.([]interface{}), widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
break
|
||||
|
||||
case string:
|
||||
new := val.(string)
|
||||
if trans(widgetName, inst, &new) {
|
||||
val = new
|
||||
res = true
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
if trans(widgetName, inst, &key) {
|
||||
res = true
|
||||
}
|
||||
|
||||
value[key] = val
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
func transArr(value []interface{}, widgetName string, inst string, trans func(widget string, inst string, value *string) bool) bool {
|
||||
res := false
|
||||
for idx, val := range value {
|
||||
|
||||
switch val.(type) {
|
||||
case map[string]interface{}:
|
||||
if transMap(val.(map[string]interface{}), widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
break
|
||||
|
||||
case []interface{}:
|
||||
if transArr(val.([]interface{}), widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
break
|
||||
|
||||
case string:
|
||||
new := val.(string)
|
||||
if trans(widgetName, inst, &new) {
|
||||
val = new
|
||||
res = true
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
value[idx] = val
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
|
@ -38,6 +38,42 @@ func (column ColumnDSL) Replace(data map[string]interface{}) (*ColumnDSL, error)
|
|||
return &new, nil
|
||||
}
|
||||
|
||||
// Trans trans
|
||||
func (column *ColumnDSL) Trans(widgetName string, inst string, trans func(widget string, inst string, value *string) bool) bool {
|
||||
res := false
|
||||
if column.Edit != nil {
|
||||
if column.Edit.Trans(widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
}
|
||||
|
||||
if column.View != nil {
|
||||
if column.View.Trans(widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
// Trans column trans
|
||||
func (columns Columns) Trans(widgetName string, inst string, trans func(widget string, inst string, value *string) bool) bool {
|
||||
res := false
|
||||
|
||||
for key, column := range columns {
|
||||
if trans(widgetName, inst, &key) {
|
||||
res = true
|
||||
}
|
||||
newPtr := &column
|
||||
if newPtr.Trans(widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
columns[key] = *newPtr
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
// Map cast to map[string]inteface{}
|
||||
func (column ColumnDSL) Map() map[string]interface{} {
|
||||
res := map[string]interface{}{
|
||||
|
|
|
|||
|
|
@ -28,6 +28,33 @@ func (filter FilterDSL) Replace(data map[string]interface{}) (*FilterDSL, error)
|
|||
return &new, nil
|
||||
}
|
||||
|
||||
// Trans trans
|
||||
func (filter *FilterDSL) Trans(widgetName string, inst string, trans func(widget string, inst string, value *string) bool) bool {
|
||||
res := false
|
||||
if filter.Edit != nil {
|
||||
if filter.Edit.Trans(widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
// Trans column trans
|
||||
func (filters Filters) Trans(widgetName string, inst string, trans func(widget string, inst string, value *string) bool) bool {
|
||||
res := false
|
||||
for key, filter := range filters {
|
||||
if trans(widgetName, inst, &key) {
|
||||
res = true
|
||||
}
|
||||
newPtr := &filter
|
||||
if newPtr.Trans(widgetName, inst, trans) {
|
||||
res = true
|
||||
}
|
||||
filters[key] = *newPtr
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
// Map cast to map[string]inteface{}
|
||||
func (filter FilterDSL) Map() map[string]interface{} {
|
||||
res := map[string]interface{}{
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ func TestTransformFilter(t *testing.T) {
|
|||
}
|
||||
assert.Equal(t, "Bar", fi.Key)
|
||||
assert.Equal(t, "where.Foo.match", fi.Bind)
|
||||
assert.Equal(t, "::please input Bar", fi.Edit.Props["placeholder"])
|
||||
assert.Equal(t, "$L(please input) Bar", fi.Edit.Props["placeholder"])
|
||||
|
||||
fi, err = tr.Filter("not-found", data)
|
||||
assert.True(t, IsNotFound(err))
|
||||
|
|
@ -52,7 +52,7 @@ func TestTransformTable(t *testing.T) {
|
|||
}
|
||||
assert.Equal(t, "Bar", tab.Key)
|
||||
assert.Equal(t, "Foo", tab.Bind)
|
||||
assert.Equal(t, "::please input Bar", tab.Edit.Props["placeholder"])
|
||||
assert.Equal(t, "$L(please input) Bar", tab.Edit.Props["placeholder"])
|
||||
|
||||
tab, err = tr.Table("not-found", data)
|
||||
assert.True(t, IsNotFound(err))
|
||||
|
|
@ -67,7 +67,7 @@ func TestTransformForm(t *testing.T) {
|
|||
}
|
||||
assert.Equal(t, "Bar", form.Key)
|
||||
assert.Equal(t, "Foo", form.Bind)
|
||||
assert.Equal(t, "::please input Bar", form.Edit.Props["placeholder"])
|
||||
assert.Equal(t, "$L(please input) Bar", form.Edit.Props["placeholder"])
|
||||
|
||||
form, err = tr.Form("not-found", data)
|
||||
assert.True(t, IsNotFound(err))
|
||||
|
|
|
|||
|
|
@ -4,4 +4,8 @@ package table
|
|||
func (dsl *DSL) Lang(trans func(widget string, inst string, value *string) bool) {
|
||||
widget := "table"
|
||||
trans(widget, dsl.ID, &dsl.Name)
|
||||
if dsl.Fields != nil {
|
||||
dsl.Fields.Filter.Trans(widget, dsl.ID, trans)
|
||||
dsl.Fields.Table.Trans(widget, dsl.ID, trans)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
"bind": "where.${name}.match",
|
||||
"edit": {
|
||||
"type": "Input",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
"bind": "${name}",
|
||||
"edit": {
|
||||
"type": "Input",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
},
|
||||
"edit": {
|
||||
"type": "Input",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
"edit": {
|
||||
"type": "Select",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"options": "$.SelectOption{option}"
|
||||
}
|
||||
}
|
||||
|
|
@ -85,7 +85,7 @@
|
|||
"edit": {
|
||||
"type": "Select",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"options": "$.SelectOption{option}"
|
||||
}
|
||||
}
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
"edit": {
|
||||
"type": "Select",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"options": "$.SelectOption{option}"
|
||||
}
|
||||
}
|
||||
|
|
@ -113,7 +113,7 @@
|
|||
"edit": {
|
||||
"type": "TextArea",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}",
|
||||
"placeholder": "$L(please input) ${label || comment}",
|
||||
"autoSize": { "minRows": 2, "maxRows": 6 }
|
||||
}
|
||||
}
|
||||
|
|
@ -128,7 +128,7 @@
|
|||
"edit": {
|
||||
"type": "TextArea",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}",
|
||||
"placeholder": "$L(please input) ${label || comment}",
|
||||
"autoSize": { "minRows": 2, "maxRows": 6 }
|
||||
}
|
||||
}
|
||||
|
|
@ -142,7 +142,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "time"
|
||||
}
|
||||
}
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "time"
|
||||
}
|
||||
}
|
||||
|
|
@ -165,7 +165,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "time"
|
||||
}
|
||||
}
|
||||
|
|
@ -178,7 +178,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "year"
|
||||
}
|
||||
}
|
||||
|
|
@ -189,7 +189,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "year"
|
||||
}
|
||||
}
|
||||
|
|
@ -201,7 +201,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "year"
|
||||
}
|
||||
}
|
||||
|
|
@ -214,7 +214,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "date"
|
||||
}
|
||||
}
|
||||
|
|
@ -225,7 +225,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "date"
|
||||
}
|
||||
}
|
||||
|
|
@ -237,7 +237,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"picker": "date"
|
||||
}
|
||||
}
|
||||
|
|
@ -250,7 +250,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"showTime": { "format": "HH:mm:ss" }
|
||||
}
|
||||
}
|
||||
|
|
@ -261,7 +261,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"showTime": { "format": "HH:mm:ss" }
|
||||
}
|
||||
}
|
||||
|
|
@ -273,7 +273,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"showTime": { "format": "HH:mm:ss" }
|
||||
}
|
||||
}
|
||||
|
|
@ -286,7 +286,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"showTime": { "format": "HH:mm:ss" }
|
||||
}
|
||||
}
|
||||
|
|
@ -297,7 +297,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"showTime": { "format": "HH:mm:ss" }
|
||||
}
|
||||
}
|
||||
|
|
@ -309,7 +309,7 @@
|
|||
"edit": {
|
||||
"type": "DatePicker",
|
||||
"props": {
|
||||
"placeholder": "::please select ${label || comment}",
|
||||
"placeholder": "$L(please select) ${label || comment}",
|
||||
"showTime": { "format": "HH:mm:ss" }
|
||||
}
|
||||
}
|
||||
|
|
@ -322,7 +322,7 @@
|
|||
"bind": "where.${name}.match",
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
|
|
@ -330,7 +330,7 @@
|
|||
"bind": "${name}",
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
|
@ -342,7 +342,7 @@
|
|||
},
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -352,7 +352,7 @@
|
|||
"bind": "where.${name}.match",
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
|
|
@ -360,7 +360,7 @@
|
|||
"bind": "${name}",
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
|
@ -372,7 +372,7 @@
|
|||
},
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -383,7 +383,7 @@
|
|||
"bind": "where.${name}.match",
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
|
|
@ -392,7 +392,7 @@
|
|||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}",
|
||||
"placeholder": "$L(please input) ${label || comment}",
|
||||
"disabled": true
|
||||
}
|
||||
}
|
||||
|
|
@ -407,7 +407,7 @@
|
|||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}",
|
||||
"placeholder": "$L(please input) ${label || comment}",
|
||||
"disabled": true
|
||||
}
|
||||
}
|
||||
|
|
@ -420,7 +420,7 @@
|
|||
"bind": "where.${name}.match",
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
|
|
@ -429,7 +429,7 @@
|
|||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}"
|
||||
"placeholder": "$L(please input) ${label || comment}"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -443,7 +443,7 @@
|
|||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}"
|
||||
"placeholder": "$L(please input) ${label || comment}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -455,7 +455,7 @@
|
|||
"bind": "where.${name}.match",
|
||||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": { "placeholder": "::please input ${label || comment}" }
|
||||
"props": { "placeholder": "$L(please input) ${label || comment}" }
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
|
|
@ -464,7 +464,7 @@
|
|||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}"
|
||||
"placeholder": "$L(please input) ${label || comment}"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -478,7 +478,7 @@
|
|||
"edit": {
|
||||
"type": "InputNumber",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}"
|
||||
"placeholder": "$L(please input) ${label || comment}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -533,7 +533,7 @@
|
|||
"edit": {
|
||||
"type": "TextArea",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}",
|
||||
"placeholder": "$L(please input) ${label || comment}",
|
||||
"autoSize": { "minRows": 2, "maxRows": 6 }
|
||||
}
|
||||
}
|
||||
|
|
@ -548,7 +548,7 @@
|
|||
"edit": {
|
||||
"type": "TextArea",
|
||||
"props": {
|
||||
"placeholder": "::please input ${label || comment}",
|
||||
"placeholder": "$L(please input) ${label || comment}",
|
||||
"autoSize": { "minRows": 2, "maxRows": 6 }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
42
yao/langs/zh-cn/global.yml
Normal file
42
yao/langs/zh-cn/global.yml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
Start Engine: "启动象传应用引擎"
|
||||
One or more arguments are not correct: "参数错误"
|
||||
Application directory: "指定应用路径"
|
||||
Environment file: "指定环境变量文件"
|
||||
Help for yao: "显示命令帮助文档"
|
||||
Show app configure: "显示应用配置信息"
|
||||
Update database schema: "更新数据表结构"
|
||||
Execute process: "运行处理器"
|
||||
Show version: "显示当前版本号"
|
||||
Development mode: "使用开发模式启动"
|
||||
Enabled unstable features: "启用内测功能"
|
||||
"Fatal: %s": "失败: %s"
|
||||
Service stopped: "服务已关闭"
|
||||
API: " API接口"
|
||||
API List: "API列表"
|
||||
Root: "应用目录"
|
||||
Frontend: "前台地址"
|
||||
Dashboard: "管理后台"
|
||||
Not enough arguments: "参数错误: 缺少参数"
|
||||
"Run: %s": "运行: %s"
|
||||
"Arguments: %s": "参数错误: %s"
|
||||
"%s Response": "%s 返回结果"
|
||||
"Update schema model: %s (%s) ": "更新表结构 model: %s (%s)"
|
||||
Model name: "模型名称"
|
||||
Initialize project: "项目初始化"
|
||||
✨DONE✨: "✨完成✨"
|
||||
"NEXT:": "下一步:"
|
||||
Listening: " 监听"
|
||||
✨LISTENING✨: "✨服务正在运行✨"
|
||||
✨STOPPED✨: "✨服务已停止✨"
|
||||
SessionPort: "会话服务端口"
|
||||
Force migrate: "强制更新数据表结构"
|
||||
Migrate is not allowed on production mode.: "Migrate 不能再生产环境下使用"
|
||||
Create: 创建
|
||||
Edit: 编辑
|
||||
View: 查看
|
||||
please input: 请输入
|
||||
Please input: 请输入
|
||||
please select: 请选择
|
||||
Please select: 请选择
|
||||
Enable: 开启
|
||||
Disable: 关闭
|
||||
2
yao/langs/zh-cn/logins/admin.login.yml
Normal file
2
yao/langs/zh-cn/logins/admin.login.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Make Your Dream With Yao App Engine: 梦想让我们与众不同
|
||||
Admin Login: 管理员登录
|
||||
2
yao/langs/zh-cn/logins/user.login.yml
Normal file
2
yao/langs/zh-cn/logins/user.login.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Make Your Dream With Yao App Engine: 梦想让我们与众不同
|
||||
User Login: 用户登录
|
||||
42
yao/langs/zh-hk/global.yml
Normal file
42
yao/langs/zh-hk/global.yml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
Start Engine: "啟動像傳應用引擎"
|
||||
One or more arguments are not correct: "參數錯誤"
|
||||
Application directory: "指定應用路徑"
|
||||
Environment file: "指定環境變量文件"
|
||||
Help for yao: "顯示命令幫助文檔"
|
||||
Show app configure: "顯示應用配置信息"
|
||||
Update database schema: "更新數據表結構"
|
||||
Execute process: "運行處理器"
|
||||
Show version: "顯示當前版本號"
|
||||
Development mode: "使用開發模式啟動"
|
||||
Enabled unstable features: "啟用內測功能"
|
||||
"Fatal: %s": "失敗: %s"
|
||||
Service stopped: "服務已關閉"
|
||||
API: " API接口"
|
||||
API List: "API列表"
|
||||
Root: "應用目錄"
|
||||
Frontend: "前台地址"
|
||||
Dashboard: "管理後台"
|
||||
Not enough arguments: "參數錯誤: 缺少參數"
|
||||
"Run: %s": "運行: %s"
|
||||
"Arguments: %s": "參數錯誤: %s"
|
||||
"%s Response": "%s 返回結果"
|
||||
"Update schema model: %s (%s) ": "更新表結構 model: %s (%s)"
|
||||
Model name: "模型名稱"
|
||||
Initialize project: "項目初始化"
|
||||
✨DONE✨: "✨完成✨"
|
||||
"NEXT:": "下一步:"
|
||||
Listening: " 監聽"
|
||||
✨LISTENING✨: "✨服務正在運行✨"
|
||||
✨STOPPED✨: "✨服務已停止✨"
|
||||
SessionPort: "會話服務端口"
|
||||
Force migrate: "強制更新數據表結構"
|
||||
Migrate is not allowed on production mode.: "Migrate 不能再生產環境下使用"
|
||||
Create: 創建
|
||||
Edit: 編輯
|
||||
View: 查看
|
||||
please input: 請輸入
|
||||
Please input: 請輸入
|
||||
please select: 請選擇
|
||||
Please select: 請選擇
|
||||
Enable: 開啟
|
||||
Disable: 關閉
|
||||
2
yao/langs/zh-hk/logins/admin.login.yml
Normal file
2
yao/langs/zh-hk/logins/admin.login.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Make Your Dream With Yao App Engine: 夢想讓我們與眾不同
|
||||
Admin Login: 管理員登錄
|
||||
2
yao/langs/zh-hk/logins/user.login.yml
Normal file
2
yao/langs/zh-hk/logins/user.login.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Make Your Dream With Yao App Engine: 夢想讓我們與眾不同
|
||||
User Login: 用戶登錄
|
||||
Loading…
Add table
Reference in a new issue