style: 错误信息英文返回-ctx文件
This commit is contained in:
@@ -165,3 +165,33 @@ 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