del: 移除解析请求客户端接受语言
This commit is contained in:
@@ -16,11 +16,11 @@ func ErrorCatch() gin.HandlerFunc {
|
|||||||
defer func() {
|
defer func() {
|
||||||
// 在这里处理 Panic 异常,例如记录日志或返回错误信息给客户端
|
// 在这里处理 Panic 异常,例如记录日志或返回错误信息给客户端
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
logger.Errorf("Panic 异常: %s => %v", c.Request.URL, err)
|
logger.Errorf("Panic Error: %s => %v", c.Request.URL, err)
|
||||||
|
|
||||||
// 返回错误响应给客户端
|
// 返回错误响应给客户端
|
||||||
if config.Env() == "prod" {
|
if config.Env() == "prod" {
|
||||||
c.JSON(500, result.ErrMsg("服务器内部错误"))
|
c.JSON(500, result.ErrMsg("Internal Server Errors"))
|
||||||
} else {
|
} else {
|
||||||
// 通过实现 error 接口的 Error() 方法自定义错误类型进行捕获
|
// 通过实现 error 接口的 Error() 方法自定义错误类型进行捕获
|
||||||
switch v := err.(type) {
|
switch v := err.(type) {
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import (
|
|||||||
"ems.agt/src/framework/constants/roledatascope"
|
"ems.agt/src/framework/constants/roledatascope"
|
||||||
"ems.agt/src/framework/constants/token"
|
"ems.agt/src/framework/constants/token"
|
||||||
"ems.agt/src/framework/utils/ip2region"
|
"ems.agt/src/framework/utils/ip2region"
|
||||||
"ems.agt/src/framework/utils/parse"
|
|
||||||
"ems.agt/src/framework/utils/ua"
|
"ems.agt/src/framework/utils/ua"
|
||||||
"ems.agt/src/framework/vo"
|
"ems.agt/src/framework/vo"
|
||||||
|
|
||||||
@@ -96,15 +95,6 @@ func UaOsBrowser(c *gin.Context) (string, string) {
|
|||||||
return os, browser
|
return os, browser
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClientLanguage 解析请求客户端接受语言
|
|
||||||
func ClientLanguage(c *gin.Context) string {
|
|
||||||
acceptLanguage := c.GetHeader("Accept-Language")
|
|
||||||
fmt.Println(acceptLanguage)
|
|
||||||
lang := parse.AcceptLanguage(acceptLanguage)
|
|
||||||
fmt.Println(lang)
|
|
||||||
return lang
|
|
||||||
}
|
|
||||||
|
|
||||||
// LoginUser 登录用户信息
|
// LoginUser 登录用户信息
|
||||||
func LoginUser(c *gin.Context) (vo.LoginUser, error) {
|
func LoginUser(c *gin.Context) (vo.LoginUser, error) {
|
||||||
value, exists := c.Get(common.CTX_LOGIN_USER)
|
value, exists := c.Get(common.CTX_LOGIN_USER)
|
||||||
|
|||||||
@@ -165,33 +165,3 @@ func Color(colorStr string) *color.RGBA {
|
|||||||
A: 255, // 不透明
|
A: 255, // 不透明
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// AcceptLanguage 解析 Accept-Language 头部并返回语言标签及其对应的权重值
|
|
||||||
// "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
|
|
||||||
func AcceptLanguage(acceptLanguage string) string {
|
|
||||||
language := "en"
|
|
||||||
maxQ := 0.0
|
|
||||||
for _, tag := range strings.Split(acceptLanguage, ",") {
|
|
||||||
parts := strings.Split(strings.TrimSpace(tag), ";q=")
|
|
||||||
lang := parts[0]
|
|
||||||
if strings.Contains(lang, "-") {
|
|
||||||
langParts := strings.Split(strings.TrimSpace(lang), "-")
|
|
||||||
lang = langParts[0]
|
|
||||||
}
|
|
||||||
q := 0.0 // 默认权重值
|
|
||||||
if len(parts) > 1 {
|
|
||||||
// 解析权重值
|
|
||||||
qValue := parts[1]
|
|
||||||
_, err := fmt.Sscanf(qValue, "%f", &q)
|
|
||||||
if err != nil {
|
|
||||||
q = 0.0 // 若解析失败,则使用默认值
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 取最大
|
|
||||||
if q > maxQ {
|
|
||||||
maxQ = q
|
|
||||||
language = lang
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return language
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user