diff --git a/src/framework/utils/ctx/ctx.go b/src/framework/utils/ctx/ctx.go index 7a35b90d..8539e63f 100644 --- a/src/framework/utils/ctx/ctx.go +++ b/src/framework/utils/ctx/ctx.go @@ -11,6 +11,7 @@ import ( "ems.agt/src/framework/utils/ip2region" "ems.agt/src/framework/utils/ua" "ems.agt/src/framework/vo" + "golang.org/x/text/language" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" @@ -95,6 +96,20 @@ func UaOsBrowser(c *gin.Context) (string, string) { return os, browser } +// AcceptLanguage 解析客户端接收语言 zh:中文 en: 英文 +func AcceptLanguage(c *gin.Context) string { + preferredLanguage := language.English + acceptLanguage := c.GetHeader("Accept-Language") + tags, _, _ := language.ParseAcceptLanguage(acceptLanguage) + if len(tags) > 0 { + preferredLanguage = tags[0] + } + // 只取前缀 + lang := preferredLanguage.String() + arr := strings.Split(lang, "-") + return arr[0] +} + // LoginUser 登录用户信息 func LoginUser(c *gin.Context) (vo.LoginUser, error) { value, exists := c.Get(common.CTX_LOGIN_USER)