fonchain-fiee/pkg/logic/language.go
2025-05-26 16:31:38 +08:00

133 lines
2.5 KiB
Go

package logic
import (
"fonchain-fiee/pkg/e"
"github.com/gin-gonic/gin"
"strings"
)
func GetLanguage(c *gin.Context) string {
lang := c.Request.Header.Get("Accept-Language")
lang = strings.Split(lang, ",")[0]
if lang == "zh-CN" || lang == "zh" || lang == "ZhCN" {
lang = "ZhCN"
} else if lang == "zh-TW" || lang == "ZhTW" {
lang = "ZhTW"
} else if lang == "en" || lang == "EN" {
lang = "EN"
}
return lang
}
func ConvertOfflineMsg(c *gin.Context, key string) string {
language := GetLanguage(c)
switch language {
case "EN":
return e.OfflineMap[strings.Join([]string{key, "EN"}, "")]
case "ZhCN":
return e.OfflineMap[strings.Join([]string{key, "ZhCN"}, "")]
case "ZhTW":
return e.OfflineMap[strings.Join([]string{key, "ZhTW"}, "")]
default:
return key
}
}
func ConvertLoginMsg(c *gin.Context, key string) string {
language := GetLanguage(c)
switch language {
case "EN":
return e.LoginMap[strings.Join([]string{key, "EN"}, "")]
case "ZhCN":
return e.LoginMap[strings.Join([]string{key, "ZhCN"}, "")]
case "ZhTW":
return e.LoginMap[strings.Join([]string{key, "ZhTW"}, "")]
default:
return key
}
}
func ConvertWeek(language string, week int32) string {
switch language {
case "EN":
switch week {
case 1:
return "Monday"
case 2:
return "Tuesday"
case 3:
return "Wednesday"
case 4:
return "Thursday"
case 5:
return "Friday"
case 6:
return "Saturday"
case 7:
return "Sunday"
}
case "ZhCN":
switch week {
case 1:
return "星期一"
case 2:
return "星期二"
case 3:
return "星期三"
case 4:
return "星期四"
case 5:
return "星期五"
case 6:
return "星期六"
case 7:
return "星期日"
}
case "ZhTW":
switch week {
case 1:
return "星期一"
case 2:
return "星期二"
case 3:
return "星期三"
case 4:
return "星期四"
case 5:
return "星期五"
case 6:
return "星期六"
case 7:
return "星期日"
}
}
return ""
}
func ConvertAmPm(language string, amPm string) string {
switch language {
case "EN":
switch amPm {
case "上午":
return "AM"
case "下午":
return "PM"
}
}
return amPm
}
func ConvertOaMsg(c *gin.Context, key string) string {
language := GetLanguage(c)
switch language {
case "EN":
return e.GetMsgEN(strings.Join([]string{key, "EN"}, ""))
case "ZhCN":
return e.GetMsgZhCN(strings.Join([]string{key, "ZhCN"}, ""))
case "ZhTW":
return e.GetMsgZhTW(strings.Join([]string{key, "ZhTW"}, ""))
default:
return key
}
}