|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package utils
-
- import (
- "applet/app/cfg"
- "applet/app/utils/cache"
- "encoding/json"
- "github.com/gin-gonic/gin"
- "github.com/go-creed/sat"
- "strings"
- )
-
- func ReadReverse(c *gin.Context, str string) string {
- if c.GetString("translate_open") == "zh_Hant_" { //繁体先不改
- sat.InitDefaultDict(sat.SetPath(cfg.WxappletFilepath.URL + "/" + "sat.txt")) //使用自定义词库
- sat := sat.DefaultDict()
- res := sat.ReadReverse(str)
- list := strings.Split(res, "http")
- imgList := []string{".png", ".jpg", ".jpeg", ".gif"}
- for _, v := range list {
- for _, v1 := range imgList {
- if strings.Contains(v, v1) { //判断是不是有图片 有图片就截取 替换简繁体
- strs := strings.Split(v, v1)
- if len(strs) > 0 {
- oldStr := strs[0]
- newStr := sat.Read(oldStr)
- res = strings.ReplaceAll(res, oldStr, newStr)
- }
- }
- }
- }
- return res
- }
- if c.GetString("translate_open") != "zh_Hant_" { //除了繁体,其他都走这里
- //简体---其他语言
- cTouString, err := cache.GetString("multi_language_c_to_" + c.GetString("translate_open"))
- if err != nil {
- return str
- }
- var cTou = make(map[string]string)
- json.Unmarshal([]byte(cTouString), &cTou)
- if len(cTou) == 0 {
- return str
- }
- //其他语言--简体
- getString1, err1 := cache.GetString("multi_language_" + c.GetString("translate_open") + "_to_c")
- if err1 != nil {
- return str
- }
- var uToc = make(map[string]string)
- json.Unmarshal([]byte(getString1), &uToc)
- if len(uToc) == 0 {
- return str
- }
- res := str
- for k, v := range cTou {
- res = strings.ReplaceAll(res, k, v)
- }
- list := strings.Split(res, "http")
- imgList := []string{".png", ".jpg", ".jpeg", ".gif"}
- for _, v := range list {
- for _, v1 := range imgList {
- if strings.Contains(v, v1) { //判断是不是有图片 有图片就截取 替换简繁体
- strs := strings.Split(v, v1)
- if len(strs) > 0 {
- oldStr := strs[0]
- newStr := oldStr
- for k2, v2 := range uToc {
- newStr = strings.ReplaceAll(oldStr, k2, v2)
- }
- res = strings.ReplaceAll(res, oldStr, newStr)
- }
- }
- }
- }
- return res
- }
- return str
-
- }
-
- func ReadReverse1(str, types string) string {
- res := map[string]map[string]string{}
- err := cache.GetJson("multi_language", &res)
- if err != nil {
- return str
- }
- for k, v := range res {
- str = strings.ReplaceAll(str, k, v[types])
- }
- resStr := str
- list := strings.Split(resStr, "http")
- imgList := []string{".png", ".jpg", ".jpeg", ".gif"}
- for _, v := range list {
- for _, v1 := range imgList {
- if strings.Contains(v, v1) { //判断是不是有图片 有图片就截取 替换简繁体
- strs := strings.Split(v, v1)
- if len(strs) > 0 {
- oldStr := strs[0]
- for k2, v2 := range res {
- if v2[types] == oldStr {
- resStr = strings.ReplaceAll(resStr, oldStr, k2)
- }
- }
- //res = strings.ReplaceAll(res, oldStr, newStr)
- }
- }
- }
- }
- return resStr
- }
|